javascript - 如何翻译我的查询以在 Node.js 中与 mongodb 一起使用
问题描述
这就是我的 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"}}'})
引号在这里是个问题。
解决方案
您不应该在整个查询值表达式周围使用字符串模板,因为这将产生一个字符串。相反,只需像这样构造您的查询:
query[value] = { $elemMatch: { action: "todo", status } }
推荐阅读
- node.js - 如何在 Actions on Google 上使用公司帐户对用户进行身份验证?
- excel - 在 Excel 中按组拆分列
- excel - Excel VBA:如果当前行的特定单元格不为空,则将当前行中的特定单元格插入新行
- react-native - 用于反应原生的 RTCView 中的翻转视图
- r - 如何在R中构造一个螺旋矩阵?
- angular - 如何清除primeng多选中的搜索文本框
- django - Django Guardian - 在过滤期间检查权限
- c# - 如何在日历控件中预先选择多个月份 - WPF
- css - 如何将 v-btn 与 v-expansion-panels 放在同一行?
- angular - CloudFront 上用于 Angular 应用程序的“NoSuchKey”代码