是否有一种插入MongoDB中不包含某些属性的新文档的方法?
例如,假设我要插入一个类似于:
的文档{
'f_name': 'Jim',
'l_name': 'Jones',
'age': 21,
'country': 'UK',
...etc...
}
但我想仅在包含
的文档时插入此文档{
'f_name': 'Jim',
'l_name': 'Jones'
}
尚未存在。有没有办法在单个操作中执行此操作(例如像upsert,但不修改任何现有匹配文档,如果存在),或者这是否必须在两个单独的操作中完成(查找是否存在,然后查找插入)?
这并不重要,但了解并节省大量时间会非常有用!
答案 0 :(得分:1)
您可以使用以下两个选项之一:
像这样的upsert:
db.col.update({f_name:'Jim',l_name:'Jones'},{//您的doc在这里},{upsert:true})
这将基本上搜索一个文档,其中这些字段已经具有这些值和更新(您可以只更新具有相同值的字段),或者如果查找条件没有返回结果则插入。
最后一个尝试是使用两个查询,但上面的upsert应该可以很好地工作。