Mongodb 更新路径';包装。$[pkg10]。项目';将在'处产生冲突;包装';
我试图在mongo中执行以下更新,但出现错误:Mongodb 更新路径';包装。$[pkg10]。项目';将在'处产生冲突;包装';,mongodb,mongodb-query,Mongodb,Mongodb Query,我试图在mongo中执行以下更新,但出现错误: db.xyz.updateOne( { "xyzId": 1 }, { $push: { "packages": { "id": 11 } }, $pull: { "packages.$[pkg10].items": { "id": 1000 } } }, { arr
db.xyz.updateOne(
{ "xyzId": 1 },
{
$push: { "packages": { "id": 11 } },
$pull: { "packages.$[pkg10].items": { "id": 1000 } }
},
{
arrayFilters: [{ "pkg10.id": 1 }]
}
)
错误:
{
"message" : "Updating the path 'packages.$[pkg10].items' would create a conflict at 'packages'",
"stack" : "script:1:11",
"name" : "WriteError",
"code" : 40,
"index" : 0
}
我的问题是,为什么不能先按顺序添加一个包,然后从另一个指定包中删除项?
我怎么知道哪种更新会导致这种错误呢
类似的问题(但没有帮助):
我如何知道哪种更新会导致此类错误
如果您试图在相同的更新操作中更新相同的路径,即包
在这里,您可以在包
上进行拉
和推
。因此发生了错误。如果必须更新另一个路径
或字段
,则可以在相同的更新操作中添加它
为什么不能先按顺序添加一个包,然后从另一个指定包中删除项目
缺少限制/功能。这是mongo db的方式