当数组嵌套在多层嵌入式文档中时,如何删除数组元素?

时间:2012-10-20 10:17:18

标签: mongodb

鉴于以下MongoDB示例集合(“学校”),您如何从所有俱乐部中删除学生“111”?

[
  {
    "name": "P.S. 321",
    "structure": {
      "principal": "Fibber McGee",
      "vicePrincipal": "Molly McGee",
      "clubs": [
        {
          "name": "Chess",
          "students": [
            ObjectId("111"),
            ObjectId("222"),
            ObjectId("333")
          ]
        },
        {
          "name": "Cricket",
          "students": [
            ObjectId("111"),
            ObjectId("444")
          ]
        }
      ]
    }
  },
  ...
]

我希望除了使用游标循环遍历每所学校,然后是每个俱乐部,然后是俱乐部中的每个学生ID,我都希望有其他方法......

1 个答案:

答案 0 :(得分:0)

MongoDB对数组中的数组(在数组中......)没有很好的支持。我看到的最简单的解决方案是将整个文档读入您的应用程序,在那里修改然后保存。这样,当然,操作不是原子操作,但对于你的应用程序,它可能没问题。