मेरे पास एक डेटा है जो मोंगोडीबी में नीचे जैसा दिखता है

{
_id: aasdfeasfeasdf,
todo: [
         {_todoIde: 333, _with: []},
         {_todoIde: 111, _with: []},
      ]
}

मैं $addToSet को _todoIde: 333 के _with को {_todoIde: 333, _with: [aaaa]}, की तरह मान देना चाहता हूं। मैं यह कैसे कर सकता हूं?

.updateOne(
   {_id},
   { $addToSet: {}}
)

मुझे दस्तावेज़ मिल गया लेकिन मैं उस _todoIde: 333 को केवल उसी को अपडेट करने के लिए निर्दिष्ट नहीं कर सकता।

0
chichi 12 जिंदा 2021, 19:38

2 जवाब

सबसे बढ़िया उत्तर

todoIde निर्दिष्ट करने के लिए आपको एक अतिरिक्त शर्त जोड़नी होगी

ये कोशिश करें:


db.collection.update(
            {$and:[{_id: typeId},{'todo._todoIde': 333}]},
            {$set: { "todo._todoIde.$._with":[a,b,c]}},
        );

1
Aviv Lo 12 जिंदा 2021, 19:50

स्थितीय $ ऑपरेटर एक सरणी में एक तत्व की पहचान करता है सरणी में तत्व की स्थिति को स्पष्ट रूप से निर्दिष्ट किए बिना अद्यतन करने के लिए,

.updateOne(
  { _id: "aasdfeasfeasdf", "todo._todoIde": 333 },
  {
    $addToSet: {
      "todo.$._with": "aaaa"
    }
  }
)

खेल का मैदान

2
turivishal 12 जिंदा 2021, 20:02