2016-11-19 39 views
0

我在我的Nodejs應用程序上使用mongodb軟件包。我嘗試刪除嵌套的對象。當我放置一個嵌套對象時它工作。當我將字符串放入條件時,它不起作用,我不明白爲什麼。有人能幫我嗎?Mongodb查詢不能使用字符串

這並不工作:

var tmp = 'records.' + j + '.domains'; 
records.update({'email': '<removed>'}, {'$pull': {tmp: {'_id': req.params.dn}}}); 

這項工作:

records.update({'email': '<removed>'}, {'$pull': {'records.1.domain': {'_id': req.params.dn}}}); 

回答

4

應使用以下語法:

var tmp_key = 'records.' + j + '.domains'; 
var tmp_value = {'_id': req.params.dn}; 
var query = {}; 
query[tmp_key] = tmp_value; 
records.update({'email': '<removed>'}, {'$pull': query}); 
1

因爲你不能用一個變量作爲對象文本鍵值。請改爲使用obj[tmp] = nested_obj動態構建對象。