首页 > 解决方案 > 在 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 数组中给出的所有答案,这样如果用户已经写了该答案并且如果删除为真,那么它应该为该用户提供,否则如果答案被删除并且该用户不应该出现没有给出那个答案

错误 : 在此处输入图像描述

标签: mongodb

解决方案


$or:[ {$and:[ {user:{$eq:req.user.id}},{deleted:{$exists:true}}]}, // 如果用户删除了它,则显示已删除 {$and :[ {user:{$ne:req.user.id}},{deleted:false}]} // 如果用户没有给出已删除的答案,则不显示]


推荐阅读