2016-11-19 7 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を使用してオブジェクトを動的に構築します。

関連する問題