MongoDB中,有如下的一条数据,我想修改,workerStats.stage=LABEL and workerStats.idOfWorker=admin
的stats
里面的labeledItems
,使其自增1。
{
"_id" : ObjectId("5ac1ff4c87c0fc67c0f4fe60"),
"_class" : "com.JobEntity",
"workerStats" : [
{
"idOfWorker" : "admin",
"stage" : "LABEL",
"stats" : {
"totalItems" : 0,
"labeledItems" : 0,
"submittedItems" : 0
}
},
{
"idOfWorker" : "lgh",
"stage" : "REVIEW",
"stats" : {
"totalItems" : 0,
"labeledItems" : 0,
"submittedItems" : 0
}
}
]
}
我的修改语句如下:
db.job.updateOne(
{
"_id": ObjectId("5ac1ff4c87c0fc67c0f4fe60"),
"workerStats.stage": "LABEL",
"workerStats.idOfWorker": "admin"
},
{
$inc: {
"workerStats.$.stats.labeledItems": 1
}
}
)
但是并不起作用,请问应该如何修改?
$elemMatch
才是代表使用同一个数组元素同时匹配多个条件。否则可能是多个数组元素匹配不同的条件,$也就没有意义了。