node.js - Mongodb 查询不适用于字符串

标签 node.js mongodb

我在 Nodejs 应用程序上使用 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}}});

最佳答案

您应该使用以下语法:

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});

关于node.js - Mongodb 查询不适用于字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698357/

相关文章:

javascript - Loopback如何读取mongodb上的结果聚合

mongodb - Mongodb-3.4 的最佳开源 gui 工具

node.js - Mongoose 批量插入错误

node.js - Mongoose : Saving ref of another document into an array of objects document returns empty array

node.js - $addToSet 和更新插入

node.js - 下划线分组按排序

node.js - 为什么 "wanted"不是 "latest"?

javascript - 将 AngularJS 与 Express 结合使用

javascript - 当 Putty SSH 断开连接时,Amazon AWS 上的 Node.js 出现故障

javascript - Jade 包括和 block