Mongodb 更新路径';包装。$[pkg10]。项目';将在'处产生冲突;包装';

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

我试图在mongo中执行以下更新,但出现错误:

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的方式