MongoDB $ pull在具有多个匹配项的深度嵌套数组上

时间:2019-01-24 10:43:42

标签: javascript arrays node.js mongodb

我们正尝试使用MongoDB $ pull运算符删除深度嵌套的数组项,即array.array.matching_item,但是,每次尝试均失败。如果我们使用位置运算符,则只有在array.array中可能有多个匹配项时,它才删除第一个匹配项。我们也尝试过使用$ elemMatch,但无法使其正常工作。

我们有这样的文档数据:

{
  _id: 123,
  shipping_lines: [
    {
      _id: 5,
      related_items: [
        {
          name: "George"
        },
        {
          name: "Adam"
        }
      ]
    },
    {
      _id: 6,
      related_items: [
        {
          name: "George"
        },
        {
          name: "Tom"
        }
      ]
    }
  ]
}

然后,我们尝试删除所有匹配的数组项:

shipping_lines.related_items.name: "George"

我们找到的唯一答案要么不处理深度嵌套的数组,要么仅从每个文档中删除第一个匹配的数组项。

0 个答案:

没有答案