$addToSet
operatorकेवल एक सरणी में मान जोड़ता है यदि मान पहले से ही सरणी में नहीं है। यदि मान सरणी में है, $addToSet
सरणी को संशोधित नहीं करता है।
मैं दो मानों को सम्मिलित करना चाहता हूं जिन्हें एक अनुरोध के माध्यम से डुप्लीकेट नहीं किया जाना चाहिए। क्या यह संभव है?
मैंने $addToSet
ऑपरेटर को सरणी पास करने का प्रयास किया लेकिन यह उस सरणी से प्रत्येक मान के बजाय एक सरणी डाली।
$ mongo test
MongoDB shell version: 2.4.9
connecting to: test
> db.c.insert({a: [1, 2, 3]})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3 ] }
> db.c.update({}, {$addToSet: {a: [2, 4]}})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3, [ 2, 4 ] ] }
मैं अपने खुद के जवाब जोड़ने था। :-) इतना आसान ... –
@ IonicăBizău जो भी हो। आप जानते हैं कि क्या आप एक प्रश्नोत्तर प्रतिक्रिया जोड़ने का इरादा रखते हैं, आप वास्तव में एक सबमिशन में प्रश्न और उत्तर दोनों कर सकते हैं। यह हमारे जैसे लोगों को सिर्फ उत्तर सबमिट करने से बचाता है क्योंकि वास्तव में आप दोनों एक ही समय में करते थे। मैं कहीं भी डुप्लिकेट पर सट्टेबाजी कर रहा हूं हालांकि –
जब मैंने सवाल पूछा तो मुझे जवाब नहीं पता था। लेकिन इसे पोस्ट करने के बाद मुझे याद आया कि 'प्रत्येक $ ऑपरेटर है जो उससे संबंधित हो सकता है। :-) –