से विशिष्ट तत्व अद्यतन मैं एक निम्न स्कीमा के साथ एक संग्रह है:MongoDB subarray
{
"_id" : 28,
"n" : [{
"a" : ObjectId("4ef8466e46b3b8140e000000"),
"c" : 28,
"p" : [ObjectId("4f00640646b3b88005000003"), ObjectId("4f00640146b3b88005000002"), ObjectId("4f00637d46b3b8cc0e000001"), ObjectId("4f00638046b3b8cc0e000002"), ObjectId("4f00638246b3b8cc0e000003"), ObjectId("4f00631646b3b85002000001"), ObjectId("4f00631846b3b85002000002")],
"u" : 26
}, {
"a" : ObjectId("4ef8466e46b3b8140e000000"),
"c" : 10,
"p" : [ObjectId("4f00640146b3b88005000002"), ObjectId("4f0063fd46b3b88005000001")],
"u" : 26
}, {
"a" : ObjectId("4ef8467846b3b8780d000001"),
"u" : 26,
"p" : [ObjectId("4f00637b46b3b8cc0e000000")],
"c" : 28
}, {
"a" : ObjectId("4ef85a3e46b3b84408000000"),
"u" : 26,
"p" : [ObjectId("4f00631046b3b85002000000")],
"c" : 28
}]
}
मैं _ id = 28 लेकिन साथ दस्तावेज़ में सरणी में तत्वों में से एक अद्यतन करने की आवश्यकता केवल एक अगर = कुछ मूल्य और ग = कुछ मूल्य
db.coll.update({
'_id' : 28,
'n.a' : new ObjectId('4ef85a3e46b3b84408000000'),
'n.c' : 28
},
{
$push : {
'n.$.p' : ObjectId("4b97e62bf1d8c7152c9ccb74")
},
$set : {
'n.$.t' : ISODate("2013-05-13T14:22:46.777Z")
}
})
तो बुनियादी तौर पर मैं सरणी से विशिष्ट तत्व अपडेट करना चाहते हैं: और जहाँ तक एक देख सकते हैं, इस चौथे तत्व है। समस्या यह है कि जब क्वेरी निष्पादित हो रही है, तो यह संभवतः पहले तत्व को अद्यतन करता है।
मैं इसे कैसे ठीक कर सकता हूं?