2012-10-20 59 views
0

鑑於以下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其他某種方式......

+0

這段代碼是大文檔的一部分嗎?如果是,請顯示完整的結構。 –

+0

@SergioTulentsev:不,這應該是一個文檔(即集合是周圍的數組)。對困惑感到抱歉。 –

回答

0

的MongoDB沒有一個很大的支持對於數組中的數組(在數組內......)。我看到的最簡單的解決方案是將整個文檔讀入應用程序,在那裏修改它然後保存。當然,這種方式的操作不是原子的,但對於您的應用程序,它可能沒問題。