आपको $ne
. का उपयोग करना होगा ऑपरेटर।
var data = { 'kind': 'tortoise', 'hashtag': 'foo' };
Model.update(
{ 'articles.hashtag': { '$ne': 'foo' } },
{ '$addToSet': { 'articles': data } }
)
यह दस्तावेज़ को तभी अपडेट करेगा जब "लेख" सरणी में "foo" के बराबर हैशटैग के मान वाला कोई उप दस्तावेज़ न हो।
जैसा कि @BlakesSeven ने टिप्पणी में उल्लेख किया है
<ब्लॉकक्वॉट>
$addToSet
एक बार जब आप किसी एक मान की उपस्थिति का परीक्षण कर रहे होते हैं तो अप्रासंगिक हो जाता है, इसलिए यह एक $push
भी हो सकता है कोड स्पष्टता के लिए। लेकिन सिद्धांत सही है क्योंकि $addToSet
पूरी वस्तु पर काम करता है, न कि उसके केवल एक हिस्से पर।
Model.update({
{ 'articles.hashtag': { '$ne': 'foo' } },
{ '$push': {'articles': data } }
)