Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongodb查询不使用字符串_Node.js_Mongodb - Fatal编程技术网

Node.js Mongodb查询不使用字符串

Node.js Mongodb查询不使用字符串,node.js,mongodb,Node.js,Mongodb,我正在Nodejs应用程序上使用mongodb包。我尝试删除嵌套对象。当我放置一个嵌套对象时,它工作。当我将字符串放入条件时,它不起作用,我不明白为什么。有人能帮我吗 这是行不通的: var tmp = 'records.' + j + '.domains'; records.update({'email': '<removed>'}, {'$pull': {tmp: {'_id': req.params.dn}}}); var tmp='records.+j+'.domains'

我正在Nodejs应用程序上使用
mongodb
包。我尝试删除嵌套对象。当我放置一个嵌套对象时,它工作。当我将字符串放入条件时,它不起作用,我不明白为什么。有人能帮我吗

这是行不通的:

var tmp = 'records.' + j + '.domains';
records.update({'email': '<removed>'}, {'$pull': {tmp: {'_id': req.params.dn}}});
var tmp='records.+j+'.domains';
更新({'email':'''},{'pull':{tmp:{''u id':req.params.dn});
这项工作:

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

因为不能将变量用作对象文本中的键。而是使用
obj[tmp]=nested_obj

动态构造对象,因为不能将变量用作对象文本中的键。而是使用
obj[tmp]=nested_obj

动态构造对象。您应该使用以下语法:

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});
var tmp_key='records.+j+'.domains';
var tmp_value={“u id”:req.params.dn};
var query={};
查询[tmp_键]=tmp_值;
update({'email':'''},{'pull':query});

您应该使用以下语法:

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});
var tmp_key='records.+j+'.domains';
var tmp_value={“u id”:req.params.dn};
var query={};
查询[tmp_键]=tmp_值;
update({'email':'''},{'pull':query});