如果不存在,则推送mongoDB中的元素

时间:2016-08-30 09:40:15

标签: mongodb push updating

我用mongo

更新了许多功能

这是一个例子:

 db.auto.update({'def.name':'AFFAIRES'},{$push:{
"covers":{$each: [{"a":'G06'},{"a":'G07'},{"a":'G03'},{"a":'G04'},{"a":'G07'},{"a":'G30'},{"a":'G34'},
{"cover":'G14'}]}}},{multi:true})

但是,问题是,我的集合可能包含其中一个变量“a”,所以我不需要推它,如果没有,我必须在集合中推送它。 所以我的问题是如何在推送之前告诉mongoDB进行验证,是否可能? 我的查询可能还包含其他变量。

1 个答案:

答案 0 :(得分:2)

使用$addToSet - $ addToSet运算符向数组添加值,除非该值已存在。如果该值已经存在,那么$ addToSet对该数组不执行任何操作。 $ addToSet仅确保没有重复项添加到集合中,并且不会影响现有的重复元素。 $ addToSet不保证修改集中元素的特定排序。

相关问题