मेरे पास व्यक्तिगत दस्तावेज़ों का डेटाबेस है। प्रत्येक में फोटो नामक एक फ़ील्ड होता है, जो फोटो दस्तावेज़ों की एक श्रृंखला है। मैं प्रत्येक फोटो दस्तावेज़ों में एक नया 'समीक्षा' ध्वज जोड़ना चाहता हूं और इसे गलत में प्रारंभ करना चाहता हूं।नेस्टेड सरणी में सभी दस्तावेज़ों में नया फ़ील्ड जोड़ें
db.person.update({ "_id" : { $exists : true } }, {$set : {photos.reviewed : false} }, false, true)
हालांकि मैं निम्नलिखित त्रुटि मिलती है:
इस क्वेरी मैं उपयोग करने के लिए कोशिश कर रहा हूँ है यदि हां, तो
SyntaxError: missing : after property id (shell):1
यह संभव है, और क्या मैं गलत कर रहा हूँ मेरी अद्यतन करें?
यहाँ 'व्यक्ति' दस्तावेज़ की एक पूरी उदाहरण है: किसी के लिए भी
{
"_class" : "com.foo.Person",
"_id" : "2894",
"name" : "Pixel Spacebag",
"photos" : [
{
"_id" : null,
"thumbUrl" : "http://site.com/a_s.jpg",
"fullUrl" : "http://site.com/a.jpg"
},
{
"_id" : null,
"thumbUrl" : "http://site.com/b_s.jpg",
"fullUrl" : "http://site.com/b.jpg"
}]
}
बोनस कर्म जो मुझे बता सकते हैं एक क्लीनर क्यों क्वेरी { "_id" : { $exists : true } }
अच्छा जवाब। "बोनस" के लिए जो खोज रहा था उसे स्पष्ट करने के लिए "सरल" क्वेरी के साथ सभी दस्तावेज़ों को अपडेट करने का एक तरीका था ("{" _id "से कुछ अधिक सरल: {$ मौजूद है: सत्य}}"। मैं समझता हूं "बहु "परम, लेकिन मुझे अभी भी एक प्रश्न की आवश्यकता है जो सभी दस्तावेजों से मेल खाती है। मैंने सोचा कि शायद" {} "सभी दस्तावेजों से मेल खाएगा, लेकिन मुझे ऐसा नहीं लगता? –
और नहीं, यह" समाधान "नहीं है, लेकिन यह एक है मैंगोडब (2.0.2) के इलाज संस्करण के साथ मैं जो खोज रहा हूं, उसके लिए मैं अच्छी व्याख्या नहीं कर सकता हूं। यदि कोई समाधान उपलब्ध हो जाता है, तो कृपया भविष्य के उपयोगकर्ताओं के लिए एक और उत्तर पोस्ट करें। –