您需要使用
$ne运算符。
var data = { 'kind': 'tortoise', 'hashtag': 'foo' };Model.update( { 'articles.hashtag': { '$ne': 'foo' } }, { '$addToSet': { 'articles': data } })仅当“文章”数组中没有子文档且其hashtag的值等于“ foo”时,才会更新该文档。
正如@BlakesSeven在评论中提到的那样
在
$addToSet一旦你正在测试的一个值的存在,所以这也可以被一个变得无关紧要$push了代码清晰。但是该原理是正确的,因为它$addToSet适用于整个对象,而不仅仅是对象的一部分。
Model.update({ { 'articles.hashtag': { '$ne': 'foo' } }, { '$push': {'articles': data } })


