我理解您无法在现有的mongodb文档上更新_id.
但是有没有理由我们不能在'setOnInsert'部分的upsert中使用它?因为它是'插入'所以它不是更新.
我的预期用法是这样的:
db.myCol.update({_id:12345},{$setOnInsert:{_id:12345},$set:{myValue:'hi'}});
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是我错过了什么?
Kur*_*ius 10
MongoDB使用"查询"部分作为集合的一部分进行upsert查询,这意味着您不必在要指定自己的_id的set部分中指定_id.
注意:我上面的查询也有一个小错误,它是缺少的upsert标志.
这是正确的查询:
db.myCol.update({_id:12345},{$set:{myValue:'hi'}},{upsert:true});
Run Code Online (Sandbox Code Playgroud)
如果记录不存在,此查询将插入如下所示的记录:
{_id:12345,myValue:'hi'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8482 次 |
| 最近记录: |