如果where条件不满足upsert true,如何插入多条记录,例如考虑下面的查询,
db.getCollection('Llog').updateMany(
{"macID" : {$in : [1,2]}},
{$push : { "logDetails" : { $each : [{ wk: 15, score: 15 }] }}},
{upsert : true}
)
Run Code Online (Sandbox Code Playgroud)
在我的where条件下,我使用“$in”[1,2],如果有macID:1的记录,那么我应该用“logDetails”更新记录,如果我没有找到macID:2的记录,那么我需要插入记录。如果我发现两条记录都存在,则更新两条记录,或者如果我发现两条记录都不存在,则插入。
对于上面的代码,如果两者都不存在,它会插入如下记录
{
"_id" : ObjectId("59f18e68c19f798cffa406a8"),
"logDetails" : [
{
"wk" : 15,
"score" : 15
}
]
}
Run Code Online (Sandbox Code Playgroud)
例如,如果 macId : 1 可用,那么我执行第一组 updateMany 代码,那么它应该更新 macID : 1 并插入 macID : 2,但它不会插入 macID : 2 但会更新 macID : 1。
| 归档时间: |
|
| 查看次数: |
13789 次 |
| 最近记录: |