इसे परमाणु रूप से करने के लिए, आपके सभी तीन नमूना दस्तावेज़ों को एक ही दस्तावेज़ का हिस्सा होना चाहिए। MongoDB केवल साधारण दस्तावेज़ों पर परमाणु रूप से संचालन करता है:http://www.mongodb.org/ डिस्प्ले/डीओसीएस/परमाणु+ऑपरेशंस
अगर वे एक ही दस्तावेज़ का हिस्सा हैं, तो निम्नलिखित दूसरे और तीसरे उप-दस्तावेज़ के क्रम को बदल देंगे:
> db.so.find().pretty(); { "_id" : ObjectId("4f55e7ba362e2f2a734c92f8"), "subs" : [ { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935540, "order" : 1, "pub_date" : 1330935540, "score" : 0, "text" : "Hello World!", "vote_down_count" : 0, "vote_up_count" : 0 }, { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935538, "order" : 2, "pub_date" : 1330935538, "score" : 0, "text" : "Nice to meet you.", "vote_down_count" : 0, "vote_up_count" : 0 }, { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935548, "order" : 3, "pub_date" : 1330935548, "score" : 0, "text" : "Great!", "vote_down_count" : 0, "vote_up_count" : 0 } ] }
प्रश्न:
db.so.update( { _id: new ObjectId("4f55e7ba362e2f2a734c92f8")}, { $set : { 'subs.1.order' : 3, 'subs.2.order' : 2 } } );
परिणाम:
> db.so.find().pretty(); { "_id" : ObjectId("4f55e7ba362e2f2a734c92f8"), "subs" : [ { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935540, "order" : 1, "pub_date" : 1330935540, "score" : 0, "text" : "Hello World!", "vote_down_count" : 0, "vote_up_count" : 0 }, { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935538, "order" : 3, "pub_date" : 1330935538, "score" : 0, "text" : "Nice to meet you.", "vote_down_count" : 0, "vote_up_count" : 0 }, { "author_id" : "a", "class" : "principle", "content_id" : null, "host_id" : null, "modified_date" : 1330935548, "order" : 2, "pub_date" : 1330935548, "score" : 0, "text" : "Great!", "vote_down_count" : 0, "vote_up_count" : 0 } ] }