2015-07-03 67 views
0

貓鼬更新陣列我有如下貓鼬模型:內部陣列

{ 
    _id: ObjectId("557138249d46084df20620dd"), 
    name: "Example" 
    employee: [ 
     { 
      username: "[email protected]", 
      address: [ 
       { 
        street: "123 Hill Ave" 
        country: US 
       } 
      ] 
     } 
    ] 
} 

可以有很多employee和每個員工都有一個array地址。我想將陣列中的員工的所有地址更新爲空數組。所以,結果會像 -

{ 
    _id: ObjectId("557138249d46084df20620dd"), 
    name: "Example" 
    employee: [ 
     { 
      username: "[email protected]", 
      address: [] 
     } 
    ] 
} 

如何查詢更新所有文件的地址爲空數組?謝謝。

+0

您還想更改您的預期輸出中的鍵名,您將'employee'替換爲'companies'? – Yogesh

回答

0

好的,我有一個解決方案,它的工作。謝謝。

db.example.find().forEach(function(doc){ 
    doc.employee.forEach(function(em){ 
     em.address=[]; 
    }) 
    db.example.save(doc); 
}); 
0

在單個貓鼬方法中沒有辦法做到這一點。它可以通過一個簡單的循環完成並保存:

Model.findOne({query}, function(err, model) { 
    if (err) {return callback(err);} 

    for (var emp in model.employees) { 
     model.employees[emp].address = []; 
    } 

    model.save(callback); 
});