如何使用MongoDB 3.6位置运算符从数组

时间:2018-06-09 21:13:01

标签: mongodb mongodb-query

我有一个这样的数组:

{
    "_id" : ObjectId("5ae5afc93e1d0d2965a4f2d7"),
    "entries" : [ 
        {
            "_id" : ObjectId("5b159ebb0ed51064925dff24"),
            "tags" : [ 
                ObjectId("5b142608e419614016b89925"), 
                ObjectId("5b142b40e419614016b89937")
            ]
        }
    ],
    "tags" : [ 
        {
            "_id" : ObjectId("5b142608e419614016b89925"),
            "name" : "Outdated",
            "color" : "#3498db"
        }, 
        {
            "_id" : ObjectId("5b142b40e419614016b89937"),
            "name" : "Todo",
            "color" : "#e8b00a"
        }
    ],
}

我想删除" tagId2"来自entries中的每个项目。我试图将position operator用于work with arrays

db.projects.updateOne(
{
  "_id" : ObjectId("5ae5afc93e1d0d2965a4f2d7"),
},
{
  $pull: {
    'entries.$[].tags': ObjectId("5b142b40e419614016b89937")
  }
})

但是我收到了MongoDB错误:

  

WriteError:不能使用部分(条目条目。$ []。tags)来遍历元素([条目数组])

我该如何正确使用它?感谢。

0 个答案:

没有答案