2011-11-08 23 views
0

我試圖爲自己節省很多查詢,我使用Mongoose作爲ODM。在MongoDB中使用不同值更新記錄

我有一個相當大陣topic_codes,說50K +元素,我這樣做(的CoffeeScript):

conditions = code: $in: topic_codes 
    update  = $push: samples: date: point_in_time, volume: ?? 
    options = multi: true 
    TopicArchive.update conditions, update, options, (err) -> 

在這裏,我想「樣品」中插入一個新的子文檔,這是一個數組,我的文檔帶有兩個屬性的對象,日期

雖然日期是每一個我想要更新記錄,它不是,可從記錄有所不同記錄相同。

有沒有辦法實現我的目標,而不必經歷一個巨大的數據庫命中?

回答

1

多更新根據更新說明符更新所有匹配的文檔。如果要用不同的值更新每個文檔,則必須爲N個文檔發佈N個更新(或者更準確地說,您將使用N個更新說明符中的每個更新說明符進行N次更新)。例如,如果您的volume小於topic_codes,則可以發出一系列多更新,其中每個更新只涉及那些應具有相同volume的文檔,而您已經使用$in

+0

做更新按體積分組數組似乎是一個好主意。 – kain