MongoDb-Mongoose Cheat Sheet

MongoDB

  • $ mongod: start MongoDB server (localhost:27017)

  • $ mongo: open MongoDB console (connect to local server by default)

MongoDB Console

  • > show dbs: show databases on the server

  • > use DB_NAME: select database DB_NAME

  • > show collections: show collections in the selected database

  • > db.COLLECTION_NAME.find(): perform the find query on collection with the COLLECTION_NAME name to find any items

  • > db.COLLECTION_NAME.find({"_id": ObjectId("549d9a3081d0f07866fdaac6")}): perform the find query on collection with the COLLECTION_NAME name to find item with ID 549d9a3081d0f07866fdaac6

  • > db.COLLECTION_NAME.find({"email": /gmail/}): perform the find query on collection with the COLLECTION_NAME name to find items with email property matching /gmail

  • > db.COLLECTION_NAME.update(QUERY_OBJECT, SET_OBJECT): perform the update query on collection with the COLLECTION_NAME name to update items that match QUERY_OBJECT with SET_OBJECT

  • > db.COLLECTION_NAME.remove(QUERY_OBJECT): perform remove query for items matching QUERY_OBJECT criteria on the COLLECTION_NAME collection

  • > db.COLLECTION_NAME.insert(OBJECT): add OBJECT to the collection with the COLLECTION_NAME name

Mongoose Installation

  • $ sudo npm install mongoose: install the latest Mongoose locally`

  • $ sudo npm install mongoose@3.8.20 --save: install Mongoose v3.8.20 locally and save to package.json

Mongoose Basic Usage

var mongoose = require('mongoose')
var dbUri = 'mongodb://localhost:27017/api'
var dbConnection = mongoose.createConnection(dbUri)
var Schema = mongoose.Schema
var postSchema = new Schema ({
  title: String,
  text: String
})
var Post = dbConnection.model('Post', postSchema, 'posts')
Post.find({},function(error, posts){
  console.log(posts)
  process.exit(1)
})

Mongoose Schema

  • String

  • Boolean

  • Number

  • Date

  • Array

  • Buffer

  • Schema.Types.Mixed

  • Schema.Types.ObjectId

Create, Read, Update, Delete (CRUD) Mongoose Example

// Create
var post = new Post({title: 'a', text: 'b')
post.save(function(error, document){
  ...
})


// Read
Post.findOne(criteria, function(error, post) {
  ...
})

// Update
Post.findOne(criteria, function(error, post) {
  post.set()
  post.save(function(error, document){
    ...
  })
})

// Delete
Post.findOne(criteria, function(error, post) {
  post.remove(function(error){
    ...
  })
})

Mongoose Model Methods

  • find(criteria, [fields], [options], [callback]): find document; callback has error and documents arguments

  • count(criteria, [callback])): return a count; callback has error and count arguments

  • findById(id, [fields], [options], [callback]): return a single document by ID; callback has error and document arguments

  • findByIdAndUpdate(id, [update], [options], [callback]): executes MongoDB's findAndModify to update by ID

  • findByIdAndRemove(id, [options], [callback]): executes MongoDB's findAndModify to remove

  • findOne(criteria, [fields], [options], [callback]): return a single document; callback has error and document arguments

  • findOneAndUpdate([criteria], [update], [options], [callback]): executes MongoDB's findAndModify to update

  • findOneAndRemove(id, [update], [options], [callback]): executes MongoDB's findAndModify to remove

  • update(criteria, update, [options], [callback]): update documents; callback has error, and count arguments

  • create(doc(s), [callback]): create document object and save it to database; callback has error and doc(s) arguments

  • remove(criteria, [callback]): remove documents; callback has error argument

Mongoose Document Methods

  • save([callback]): save the document; callback has error, doc and count arguments

  • set(path, val, [type], [options]): set value on the doc's property

  • get(path, [type]): get the value

  • isModified([path]): check if the property has been modified

  • populate([path], [callback]): populate reference

  • toJSON(options): get JSON from document

  • validate(callback): validate the document

Query Helpers

animalSchema.query.byName = function(name) {
    return this.where({ name: new RegExp(name, 'i') });
  };

  var Animal = mongoose.model('Animal', animalSchema);

  Animal.find().byName('fido').exec(function(err, animals) {
    console.log(animals);
  });

  Animal.findOne().byName('fido').exec(function(err, animal) {
    console.log(animal);
  });

Indexes

 var animalSchema = new Schema({
   name: String,
   type: String,
   tags: { type: [String], index: true } // field level
 });

 animalSchema.index({ name: 1, type: -1 }); // schema level

Last updated