From c739ec696b382222b38e382f14f6ed9e66d90106 Mon Sep 17 00:00:00 2001 From: Louis Chatriot Date: Fri, 17 May 2013 15:48:01 +0200 Subject: [PATCH] Update README.md --- README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 639bd61..163e018 100644 --- a/README.md +++ b/README.md @@ -119,11 +119,19 @@ db.update({ system: 'solar' }, { $set: { system: 'solar system' } }, { multi: tr // Field 'system' on Mars, Earth, Jupiter now has value 'solar system' }); -// Incrementing the value of a non-existing field in a subdocument -db.update({ planet: 'Mars' }, { $inc: { "data.satellites": 2 } }, {}, function () { +// Incrementing the value of a non-existing field in a subdocument by using the dot-notation +db.update({ planet: 'Mars' }, { $set: { "data.satellites": 2, "data.red": true } }, {}, function () { // Mars document now is { _id: 'id1', system: 'solar', inhabited: false - // , data: { satellites: 2 } + // , data: { satellites: 2, red: true } // } + // Not that to set fields in subdocuments, you HAVE to use dot-notation + // Using object-notation will just replace the top-level field + db.update({ planet: 'Mars' }, { $set: { date: { satellites: 3 } } }, {}, function () { + // Mars document now is { _id: 'id1', system: 'solar', inhabited: false + // , data: { satellites: 3 } + // } + // You lost the "data.red" field which is probably not the intended behavior + }); }); // Upserting a document @@ -133,6 +141,7 @@ db.update({ planet: 'Pluton' }, { planet: 'Pluton', inhabited: false }, { upsert }); // If you upsert with a modifier, the upserted doc is the query modified by the modifier +// This is simpler than it sounds :) db.update({ planet: 'Pluton' }, { $set: { inhabited: false } }, { upsert: true }, function () { // A new document { _id: 'id5', planet: 'Pluton', inhabited: false } has been added to the collection });