mongodb - 在 mongodb 中使用条件查找,出现错误
问题描述
答案模型
{
"likeCount": 0,
"deleted": false,
"_id": "616c6224bf0d9d13009e5f67",
"question": "6158537039d6c25f258354e5",
"description": "first answer, hello xvdhgbcdcd chebcjne bebcj hevhfbej ebfhebgfj3",
"user": "60ed857c0fc08a08284827e9",
"date": "2021-10-17T17:49:24.443Z",
"__v": 0
}
用于查找答案的查询:
Answer.find({
_id: {
$in: requiredAnswers
},
deleted: {
$cond: {if:{
$strcasecmp: [
"user",req.user.id
]
},then: true,else: false}
}
})
我必须找到其 id 在 requiredAnswers 数组中给出的所有答案,这样如果用户已经写了该答案并且如果删除为真,那么它应该为该用户提供,否则如果答案被删除并且该用户不应该出现没有给出那个答案
解决方案
$or:[ {$and:[ {user:{$eq:req.user.id}},{deleted:{$exists:true}}]}, // 如果用户删除了它,则显示已删除 {$and :[ {user:{$ne:req.user.id}},{deleted:false}]} // 如果用户没有给出已删除的答案,则不显示]
推荐阅读
- javascript - 循环遍历字符串中的 html 标签并将内部文本添加到数组
- drupal - Drupal 8 站点陷入维护
- ios - 无法在进程中执行支持代码来读取 Objective-C 类数据。在真正的 iPhone 设备上
- javascript - 为什么从其他文件导入组件会导致“Invariant Violation: Element type is invalid”错误?
- sql - Listagg 分区而不是 Group By
- c++ - 微型过滤器从用户模式应用程序接收常量值
- javascript - 为什么在我安装节点 10.1.0 之后它说安装的版本是 5.6.0?
- c - 如何使用父进程和两个子进程将字符串写入文件?
- html - 如何在css中调整图像大小并适合容器(div)
- rabbitmq - 监听器使用时从 RabbitMQ 中删除消息。无法确定回复消息异常