%%script mongo
show dbs
MongoDB shell version: 2.4.6 connecting to: test bronto 7.9501953125GB five 0.203125GB google_analytics 19.9443359375GB local 0.078125GB netsuite 3.9521484375GB small 0.203125GB test 0.203125GB v 0.203125GB bye
%%script mongo dayton
db.dropDatabase()
MongoDB shell version: 2.4.6 connecting to: dayton { "dropped" : "dayton", "ok" : 1 } bye
Handy and terrifying
%%script mongo
use dayton;
db.members.insert({'name': 'Ken', 'language': 'Perl'})
MongoDB shell version: 2.4.6 connecting to: test switched to db dayton bye
%%script mongo
show dbs;
use dayton;
show collections;
MongoDB shell version: 2.4.6 connecting to: test bronto 7.9501953125GB dayton 0.203125GB five 0.203125GB google_analytics 19.9443359375GB local 0.078125GB netsuite 3.9521484375GB small 0.203125GB test 0.203125GB v 0.203125GB switched to db dayton members system.indexes bye
%%script mongo
use dayton;
db.members.find()
MongoDB shell version: 2.4.6 connecting to: test switched to db dayton { "_id" : ObjectId("528418c9b8fa004981577216"), "name" : "Ken", "language" : "Perl" } bye
%%script mongo dayton
db.members.insert({name: "Grant", language: ["PHP", "Perl"]})
db.members.find()
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("528418c9b8fa004981577216"), "name" : "Ken", "language" : "Perl" } { "_id" : ObjectId("52841a211de978769fc0ce4c"), "name" : "Grant", "language" : [ "PHP", "Perl" ] } bye
%%script mongo dayton
bob = {name: "Bob", language: "Python",
spouse: {"name": ""},
pets: [{"name": "Fido", "species": "dog"},
{"name": "Sonic", "species": "hedgehog"}]
};
db.members.insert(bob)
MongoDB shell version: 2.4.6 connecting to: dayton { "name" : "Bob", "language" : "Python", "spouse" : { "name" : "" }, "pets" : [ { "name" : "Fido", "species" : "dog" }, { "name" : "Sonic", "species" : "hedgehog" } ] } bye
%%script mongo dayton
db.members.find()
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("528418c9b8fa004981577216"), "name" : "Ken", "language" : "Perl" } { "_id" : ObjectId("52841a211de978769fc0ce4c"), "name" : "Grant", "language" : [ "PHP", "Perl" ] } { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "name" : "Bob", "language" : "Python", "spouse" : { "name" : "" }, "pets" : [ { "name" : "Fido", "species" : "dog" }, { "name" : "Sonic", "species" : "hedgehog" } ] } bye
%%script mongo dayton
db.members.find({pets: [ { "name" : "Fido", "species" : "dog" }, { "name" : "Sonic", "species" : "hedgehog" } ]});
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "name" : "Bob", "language" : "Python", "spouse" : { "name" : "" }, "pets" : [ { "name" : "Fido", "species" : "dog" }, { "name" : "Sonic", "species" : "hedgehog" } ] } bye
%%script mongo dayton
db.members.find({name: "Grant"}).explain();
MongoDB shell version: 2.4.6 connecting to: dayton { "cursor" : "BasicCursor", "isMultiKey" : false, "n" : 1, "nscannedObjects" : 3, "nscanned" : 3, "nscannedObjectsAllPlans" : 3, "nscannedAllPlans" : 3, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { }, "server" : "elli:27017" } bye
%%script mongo dayton
db.members.ensureIndex({pets: 1});
db.members.find({name: "Grant"}).explain();
MongoDB shell version: 2.4.6 connecting to: dayton { "cursor" : "BtreeCursor name_1", "isMultiKey" : false, "n" : 1, "nscannedObjects" : 1, "nscanned" : 1, "nscannedObjectsAllPlans" : 1, "nscannedAllPlans" : 1, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "name" : [ [ "Grant", "Grant" ] ] }, "server" : "elli:27017" } bye
%%script mongo dayton
db.members.find({name: "Bob"})
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "name" : "Bob", "language" : "Python", "spouse" : { "name" : "" }, "pets" : [ { "name" : "Fido", "species" : "dog" }, { "name" : "Sonic", "species" : "hedgehog" } ] } bye
%%script mongo dayton
db.members.update({name: "Bob"}, {cm: 180});
MongoDB shell version: 2.4.6 connecting to: dayton bye
%%script mongo dayton
db.members.find();
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("528418c9b8fa004981577216"), "name" : "Ken", "language" : "Perl" } { "_id" : ObjectId("52841a211de978769fc0ce4c"), "name" : "Grant", "language" : [ "PHP", "Perl" ] } { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "cm" : 180 } bye
Note that, by default, only one document is updated. Fourth arg = true enables multi-update.
%%script mongo dayton
db.members.update({name: "Grant"}, {$set: {cm: 180}}, true, true);
MongoDB shell version: 2.4.6 connecting to: dayton bye
%%script mongo dayton
db.members.find()
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("528418c9b8fa004981577216"), "name" : "Ken", "language" : "Perl" } { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "cm" : 180 } { "_id" : ObjectId("52841a211de978769fc0ce4c"), "cm" : 180, "language" : [ "PHP", "Perl" ], "name" : "Grant" } bye
$set
modifier¶%%script mongo dayton
db.members.update({name: "Ken"}, {$set: {cm: 185}});
db.members.find({name: "Ken"});
%%script mongo dayton
db.members.remove({name: null})
db.members.find()
import pymongo
client = pymongo.Connection()
db = client.dayton
db
Database(Connection('localhost', 27017), u'dayton')
db.members.find()
<pymongo.cursor.Cursor at 0x32a2a50>
for member in db.members.find():
print member
{u'_id': ObjectId('528418c9b8fa004981577216'), u'name': u'Ken', u'language': u'Perl'} {u'_id': ObjectId('52841a91b57f8e18a0ac79a7'), u'cm': 180.0} {u'_id': ObjectId('52841a211de978769fc0ce4c'), u'language': [u'PHP', u'Perl'], u'cm': 180.0, u'name': u'Grant'}
dave = {'name': 'Dave', 'language': 'Python'}
db.members.insert(dave)
list(db.members.find())
[{u'_id': ObjectId('528418c9b8fa004981577216'), u'language': u'Perl', u'name': u'Ken'}, {u'_id': ObjectId('52841a91b57f8e18a0ac79a7'), u'cm': 180.0}, {u'_id': ObjectId('52841a211de978769fc0ce4c'), u'cm': 180.0, u'language': [u'PHP', u'Perl'], u'name': u'Grant'}, {u'_id': ObjectId('52842205417f34189f8d7f61'), u'language': u'Python', u'name': u'Dave'}]
%%script mongo dayton
db.languages.insert({_id: "Ruby", creator: "Matz"});
db.languages.insert({_id: "Python", creator: "Guido"});
db.languages.insert({_id: "Perl", creator: "Larry"});
db.languages.find()
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : "Ruby", "creator" : "Matz" } { "_id" : "Python", "creator" : "Guido" } { "_id" : "Perl", "creator" : "Larry" } bye
for member in db.members.find():
print member.get('name')
if 'language' in member:
print member['language']
lang = db.languages.find_one({'_id': member['language']})
if lang:
print lang['creator']
print
Ken Perl Larry None Grant [u'PHP', u'Perl'] Dave Python Guido
%%script mongo dayton
db.members.update({language: "Python"}, {$set: {language: {name: "Python", creator: "Guido"}}})
db.members.update({language: "Ruby"}, {$set: {language: {name: "Ruby", creator: "Matz"}}})
db.members.update({language: "Perl"}, {$set: {language: {name: "Perl", creator: "Larry"}}})
db.members.find()
MongoDB shell version: 2.4.6 connecting to: dayton { "_id" : ObjectId("52841a91b57f8e18a0ac79a7"), "cm" : 180 } { "_id" : ObjectId("52841a211de978769fc0ce4c"), "cm" : 180, "language" : [ "PHP", "Perl" ], "name" : "Grant" } { "_id" : ObjectId("52842205417f34189f8d7f61"), "language" : { "name" : "Python", "creator" : "Guido" }, "name" : "Dave" } { "_id" : ObjectId("528418c9b8fa004981577216"), "language" : { "name" : "Perl", "creator" : "Larry" }, "name" : "Ken" } bye
for member in db.members.find():
if 'name' in member:
print member['name']
if 'language' in member:
if not isinstance(member['language'], list):
print member['language']['creator']
Grant Dave Guido Ken Larry
%%script mongo dayton
db.dropDatabase()