在MongoDB中,您可以使用它db.collection.save({_id:'abc'}, objectToSave)来执行upsert.
我们将objectToSave定义如下
{_id:'abc', field1:1, field2:2};
Run Code Online (Sandbox Code Playgroud)
在我的收藏中,我已经拥有一个具有相同_id值的文档,如下所示:
{_id:'abc', field3:3};
Run Code Online (Sandbox Code Playgroud)
上面的保存功能将替换集合中的现有文档
{_id:'abc', field1:1, field2:2};
Run Code Online (Sandbox Code Playgroud)
我想要的是执行$ set操作来生成集合中的一些文档,如下所示
{_id:'abc', field1:1, field2:2, field3:3};
Run Code Online (Sandbox Code Playgroud)
这可以在保存功能中实现,还是我必须编写单独的更新语句?
请注意,objectToSave的字段是动态的.我正在使用的语言是Node.JS.
db.collection.update({'_id':'abc'},{$set:{field1:1,field2:2}},{upsert:true})
Run Code Online (Sandbox Code Playgroud)
应该做你想做的事:
{_id:'abc',field1:1,field2:2}有效的,因为使用的索引必须存在既然你没有说明你使用的语言:在普通的mongoDB中,没有任何save功能.合并新的和持久化的实体版本的明确要求是非常不寻常的,所以是的,我假设您必须编写自定义函数.
| 归档时间: |
|
| 查看次数: |
7858 次 |
| 最近记录: |