मैं फार्म के दस्तावेजों:
{
_id : ObjectId(.....),
prop1 : "foo",
links : [ 1, 2, 3, 4 ]
}
{
_id : ObjectId(.....),
prop1 : "bar",
links : [ 5, 6, 7, 8 ]
}
मैं एकत्रीकरण ढांचे का उपयोग कर रहा इन दस्तावेजों पर कार्रवाई करने के, मैं $ का प्रयोग कर एक उत्पन्न करने के लिए तनाव कम लिंक सरणी में प्रत्येक मान के लिए दस्तावेज़।
लेकिन मेरे पास तीन मामले हैं जहां मुझे $ खोलने से पहले दस्तावेज़ों को अपडेट करने की आवश्यकता है, मैं $ प्रोजेक्ट ऑपरेशन देख रहा हूं, लेकिन मुझे निम्नलिखित मामलों के लिए एरे बनाने या अपडेट करने के बारे में कोई जानकारी नहीं मिल सकती है।
1) लिंक संपत्ति
{
_id : ObjectId(.....),
prop1 : "far"
}
याद आ रही है मैं) लिंक सरणी
2 सम्मिलित करने के लिए लिंक सरणी संपत्ति एक खाली सरणी
{
_id : ObjectId(.....),
prop1 : "far",
links : []
}
मैं डालने की आवश्यकता है की जरूरत है सरणी में एक मान
3) लिंक सरणी में बहुत कम मान हैं
{
_id : ObjectId(.....),
prop1 : "far",
links : [ 9, 10 ]
}
मैं सरणी
मैं सशर्त रूप से मूल्य जोड़ने के लिए '$ cond' देखता हूं: http://docs.mongodb.org/manual/reference/operator/aggregation/cond/ – WiredPrairie
मैं $ cond से परिचित हूं, समस्या मेरे पास यह है कि मैं वास्तव में सरणी बनाने या सरणी मानों को अद्यतन करने का तरीका नहीं समझ सकता। मैंने इसे बेहतर ढंग से प्रतिबिंबित करने के लिए प्रश्न को अद्यतन किया है। – user2808819
आप वास्तव में दस्तावेज़ों को स्थायी रूप से संशोधित नहीं कर सकते हैं। यह केवल पाइपलाइन के दौरान होगा कि आप किसी फ़ील्ड के मान को संशोधित कर सकते हैं। – WiredPrairie