Py学习  »  MongoDB

如何将查询转换为在node.js中与MongoDB一起使用

David • 4 年前 • 625 次点击  

这就是我的mongo查询的样子

db.test.findOne({"User.David":{$elemMatch:{"action":"todo","status":"Done"}}})

我在node.js api中实现了这个功能,用户可以根据用户名和状态检索文档

下面是我试过的。

var query = {};
var value = `User.${userName}`;
query[value] = `{$elemMatch:{"action":"todo","status":"${status}"}}`

db.collection(test).findOne(query).then((result)=>{

}

问题是查询看起来像

db.test.findOne({'User.David':'{$elemMatch:{"action":"todo","status":"Done"}}'})

这里的引号有问题。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/41181
 
625 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Christian
Reply   •   1 楼
Christian    5 年前

不应该在整个查询值表达式周围使用字符串模板,因为这样会生成字符串。 相反,只需像这样构造查询:

query[value] = { $elemMatch: { action: "todo", status } }