2015-12-22 49 views
0

我試圖通過使用更新和$ set來更新集合中的文檔。

我試圖根據用戶輸入將'購買'布爾值設置爲true/false。

如果我這樣做 {$set : {'lists.$.items.<items position>.purchased' : bought}},假設買的是布爾值,它會更新完美。但是,如果我嘗試做

var updateString = 'lists.$.items.' + itemPosition + '.purchased'; 
{$set : { updateString : bought}}; 

它總是更新0個文檔。我已經嘗試了多種版本,例如var updateString = '"lists.$.items.' + itemPosition + '.purchased"';

如果我,並將輸出粘貼到$ set中,它可以很好地工作。

我需要能夠動態地建立這些更新參數,我不能爲了我的生活找出爲什麼這不會做到這一點。

回答

0

事實證明,我並不是很聰明。

這是更我嘗試使用updateString作爲失敗的關鍵。

我身邊有這樣的方式是應該做:

var updateString = 'lists.$.items.' + itemPosition + '.purchased'; 
var query = {'$set' : {}}; 
query['$set'][updateString] = purchased; 

,然後只需在查詢中傳遞的第二個參數貓鼬更新調用。

相關問題