2013-03-27 64 views
0

不要以爲這是完全可能的,但要檢查。用不同的值更新多個文檔

如果我有下列文件:

doc1 : { 
    _id: 1, 
    name: 'John Smith', 
    age: 20 
} 

doc2 : { 
    _id: 2, 
    name: 'Jane Smith', 
    age: 22 
} 

我希望客戶能夠通過我的文檔都在更新了同樣的要求。在這種情況下,可能會向兩個文檔添加地址。

有沒有辦法讓我可以發送一個更新語句到mongo,使它更新兩個文件的名稱值?

I.E.來自客戶端:

doc1 : { 
    _id: 1, 
    name: 'John Smith', 
    age: 20, 
    address: '123 Street' 
} 

doc2 : { 
    _id: 2, 
    name: 'Jane Smith', 
    age: 22, 
    address: '456 Way' 
} 

目前我正在遍歷值並一次更新一個值。與此問題是貓鼬/ mongodb更新是異步的,所以我不能可靠地告訴客戶端,我更新了每個結果,直到所有更新回調已被觸發。我有一個櫃檯,以確保我收到N個回調,然後我發送回覆。

+0

需要將其拆分爲兩個更新。查看['async'](https://github.com/caolan/async)庫,瞭解如何改進回調計數器方法。 – JohnnyHK 2013-03-28 15:20:21

+0

同意了,謝謝! – lostintranslation 2013-03-28 17:24:35

+0

如果您將*相同*更新應用於多個文檔,則可以對''update()']使用'multi:true'標誌(http://docs.mongodb.org/manual/applications/update/#更新-多文檔)。 – Stennie 2013-04-03 01:12:19

回答