我有哈希像這樣的數組:如何使用Mongoid執行批量更新而不先查找?
[
{
id: 123,
color: 'red'
},
{
id: 456,
color: 'green'
}
]
我知道如何在一個時間內獲取和更新一個:
params[:my_documents].each do |doc|
MyDocument.find(doc[:id]).update_attributes(color: doc[:color])
end
...但我懷疑的表現不是很好。我想找到一種方法,可以直接將數據傳遞給Mongoid/MongoDB,這樣我就可以更新每個文檔,而無需查找和實例化每個文檔以更新幾個字段。
如何使用Mongoid執行批量更新而無需首先獲取它們?
不,重點在於我知道所有需要更新的文檔的id,而且我需要更新多個文檔,所以我想找到一種方法來傳遞數據並使其作爲一個有效的方式執行事務而不是一次一個地讀取和更新一個文檔。 – Andrew
這是不是有重複的原因?你似乎在說你已經知道你想插入的所有數據。 http://stackoverflow.com/questions/3772378/batch-insert-update-using-mongoid –
其實它不是你談論更新 –