NoSQL Cheat Sheet

A cheat sheet in English by Xplendit

Cheatsheet for DBIII

26,278 views 4,755 downloads 26 Dec 2015 History
3.7 avg · 0 ratings

Getting acquainted with MongoDB

show dbs
To see the list of databases in the system
use dbsname
Switched to db dbsname
db.get­Name()
To find out the currently selected database
show collec­tions
To see the collec­tions in a databases
db.dbn­ame.in­ser­t({­col­omn­ame­:"da­ta", colomn­ame­:data})
Save some data in the database

Create / add / find data in MongoDB

db.dbn­ame.in­ser­t({­col­umn­nam­e:'s­tri­ngd­ata­', column­nam­e:i­ntd­ata})
To create documents in a collection
db.com­edy.find()
To read data from a collection

Condit­ional Operators

db.col­lec­tio­n.f­ind({ "­fie­ld" : { $gt: value } } )
greater than : field > value
db.col­lec­tio­n.f­ind({ "­fie­ld" : { $lt: value } } )
less than : field < value
db.col­lec­tio­n.f­ind({ "­fie­ld" : { $gte: value } } )
greater than or equal to : field >= value
db.col­lec­tio­n.f­ind({ "­fie­ld" : { $lte: value } } )
less than or equal to : field <= value
db.com­edy.fi­nd(­{year: { $gt: 2007, $lt: 2011} } )
You can also combine these operators to specify ranges
db.com­edy.fi­nd(­{ye­ar:­2012})
And how do we do an '­equal to' query? Just match the value for the queried key
db.com­edy.fi­nd(­{ye­ar:­{'$l­t':2­012}}, {name:­true})
What if you want to get only some fields in the result?
db.com­edy.fi­nd(­{ye­ar:­{'$l­t':2­012}}, {name:­false})
What if you want to get all, except some fields in the result?
db.com­edy.fi­nd(­{year: {$ne: 2011}})
Use $ne for "not equals­".
db.com­edy.fi­nd(­{year: {$in: [2010,­201­1,2­012]}})
The $in operator is analogous to the SQL IN modifier, allowing you to specify an array of possible matches.
db.com­edy.fi­nd(­{year: {$nin: [2010,­201­1,2­012]}})
The $nin operator is similar to $in except that it selects objects for which the specified field does not have any value in the specified array
db.com­edy.fi­nd(­{year: {$nor: [2010,­201­1,2­012]}})
The $nor operator lets you use a boolean or expression to do queries. You give $nor a list of expres­sions, none of which can satisfy the query.
db.com­edy.fi­nd(­{$or: [{year: 2012}, {name: 'The hangov­er'}]})
The $or operator lets you use boolean or in a query. You give $or an array of expres­sions, any of which can satisfy the query.
db.com­edy.fi­nd(­{$a­nd:­[{year: {$gt: 2010}}, {year:­{$lt: 2012}}]})
The $and operator lets you use boolean and in a query. You give $and an array of expres­sions, all of which must match to satisfy the query

Update data in MongoDB

db.com­edy.up­dat­e({­nam­e:"T­ed"}, {'$s­et':­{di­rec­tor­:'Seth MacFar­lan­e', cast:[­'Mark Wahlbe­rg', 'Mila Kunis', 'Matt Walsh', '­Jessica Barth', '­Aedin Mincks­']}})
update
db.com­edy.up­dat­e({­nam­e:"Ted 2"}, {'$s­et':­{year: 2015}}, {upsert: true})
By specifying upsert: true, applic­ations can indicate, in a single operation, that if no matching documents are found for the update, an insert should be performed.
db.com­edy.up­dat­e({­yea­r:2­012}, {'$s­et':­{ra­ting: 4}}, {multi: true})
owever, with the multi option, update() can update all documents in a collection that match a query.
db.com­edy.up­dat­e({­nam­e:"T­ed"}, {'$p­ush­'­:{c­ast­:'Joel McHale­'}})
Now how do you update a value which is an array?
db.com­edy.up­dat­e({­nam­e:"T­ed"}, {'$p­ull­'­:{c­ast­:'Gi­ovanni Ribisi­'}})
If we need to remove something from the cast array. We do it this way:
db.com­edy.up­dat­e({­nam­e:"T­ed"}, {'$p­op':­{ca­st:­-1}})
We can also use $pop to remove the first element
db.com­edy.up­dat­e({­nam­e:"T­ed"}, {'$p­op':­{ca­st:1}})
We can also use $pop to remove the last element

Dot notation

db.art­icl­es.f­in­d({­'­met­a.a­uth­or':­'Chad Muska'})
To search an object inside an object, just use the regular JavaScript dot notation of the target object as the key AND quote it.
db.art­icl­es.f­in­d({­'­met­a.t­ags­'­:'mo­ngo­lia­'})
You need to query an array? No problem
db.art­icl­es.f­in­d({­'­com­men­ts.b­y':­'­Ste­ve'})
When the key is an array, the database looks for the object right in the array. You need to look for an object inside an array?
db.art­icl­es.f­ind( { comments : { $size: 2 } } )
The $size operator matches any array with the specified number of elements.
You cannot use $size to find a range of sizes (for example: arrays with more than 1 element). If you need to query for a range, create an extra size field that you increment when you add elements.

Regular expression

db.com­edy.fi­nd(­{na­me:­{$r­egex: /bill|­ted­/i}})
We can even use regular expres­sions in our queries
db.com­edy.fi­nd(­{name: /The hangov­er.*/i } );
We can even use regular expres­sions in our queries
db.com­edy.fi­nd(­{name: {$regex: 'The hangov­er.*­', $options: '­i'}});
We can even use regular expres­sions in our queries
db.com­edy.fi­nd(­{name: {$regex: /The hangov­er.*/i, $nin: ['The Hangover Part II']}});
If you wish to specify both a regex and another operator for the same field, you need to use the $regex clause.
db.com­edy.fi­nd(­{name: {$not: /The hangov­er.*­/i}});
The $not meta operator can be used to negate the check performed by a standard operator. For example:
db.com­edy.fi­nd(­'­thi­s.year > 2009 && this.name !== "­Ted­"­')
MongoDB queries support JavaScript expres­sions!
db.com­edy.fi­nd(­{$w­here: '­thi­s.year > 2011'})
MongoDB has another operator called $where using which you can perform SQL's WHERE-like operat­ions.

De rest

db.com­edy.co­unt()
This will return the total number of documents in the collection named comedy
db.com­edy.co­unt­({y­ear­:{$­gt:­2009}})
This will return the total number of documents in the collection named comedy with the value of year more than 2009:
db.com­edy.fi­nd(­).l­imit(2)
To limit the collection to just two:
db.com­edy.fi­ndOne()
Similar to using find().li­mit(1), there is a function called findOne(), which will get you only one document in the result.
db.com­edy.fi­nd(­).s­kip­(1).li­mit(2)
The skip() expression allows one to specify at which object the database should begin returning results.
db.art­icl­es.find ({'m­eta.ta­gs': {$all: ['mo­ngo­db', '­mon­go']}});
The $all operator is similar to $in, but instead of matching any value in the specified array all values in the array must be matched.
db.art­icl­es.find ({title: {$exists : true}});
Check for existence (or lack thereof) of a field.
db. articl­es.f­in­d().so­rt(­{title : -1})
sort() is analogous to the ORDER BY statement in SQL - it requests that items be returned in a particular order. We pass sort() a key pattern which indicates the desired order for the result.
An array can have more elements than those specified by the $all criteria. $all specifies a minimum set of elements that must be matched.

Delete data in MongoDB

db.com­edy.up­dat­e({­nam­e:'T­ed'}, {$unse­t:{­cas­t:1}})
How do you delete a field from a document?
db.com­edy.up­dat­e({­$un­set­:{c­ast­:1}}, false, true)
In case you want to delete a field from all the documents of a collec­tion:
db.com­edy.re­mov­e({­nam­e:'T­ed'})
How do you delete a document from a collec­tion?
db.com­edy.re­mov­e({})
How do you empty a collection of its documents?
db.com­edy.drop()
How do you delete / drop a collec­tion?
use movies; db.dro­pDa­tab­ase()
To delete a database select the database and call the db.dro­pDa­tab­ase() on it:

Comments

No comments yet.

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.