$addToSet
. का उपयोग करें $push
. के बजाय ।
db.push.update(
{ _id: 5 },
{ $addToSet: { "quizzes": {"wk": 6.0, "score": 8.0}, "play": {"wk": 6.0, "score": 8.0} } }
)
संपादित करें:
किसी सरणी फ़ील्ड में विशिष्ट संपत्ति द्वारा सशर्त उप-दस्तावेज़ अद्यतन के लिए कोई सरल अंतर्निहित दृष्टिकोण नहीं है। हालाँकि, एक छोटी सी तरकीब दो आदेशों को क्रम से निष्पादित करके काम कर सकती है।
उदाहरण के लिए:अगर हम quizzes
को अपडेट करना चाहते हैं ऑब्जेक्ट के साथ फ़ील्ड { "wk": 7.0, "score": 8.0 }
, हम इसे दो चरणों में कर सकते हैं:
चरण-1: $pull
quizzes
. से उप-दस्तावेजों को बाहर करें सरणी जहां "wk": 7.0
. (यदि मिलान उप-दस्तावेज़ नहीं मिला तो कुछ नहीं होगा )।
db.push.update(
{ _id: 5 },
{ $pull: { "quizzes": { "wk": 7.0 } } }
)
चरण -2: $addToSet
उप-दस्तावेज़।
db.push.update(
{ _id: 5 },
{ $addToSet: { "quizzes": {"wk": 7.0, "score": 8.0} } }
)
आप उपरोक्त दो अपडेट कमांड को bulk.find().update()
. का उपयोग करके जोड़ सकते हैं