Mongo查询中的AND和OR

3 投票
2 回答
2499 浏览
提问于 2025-04-16 23:13

我在这个查询中使用了多个操作符。虽然没有语法错误,但我没有得到任何数据(其实应该有的),所以我觉得这是个逻辑错误。问题是,我看不出来哪里出了问题。

查询:

db.questions.find(
    {'$and': [
        {'answers.s_user_id': {'$ne': s_user_id}},
        {'$or': [
                {'s_text': re.compile(s_term, re.IGNORECASE)},
                {'choices': re.compile(s_term, re.IGNORECASE)}
        ]}
    ]}
)

任何建议都非常感谢。

2 个回答

0

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们使用的工具和环境设置不对。解决这些问题的过程就像侦探破案一样,需要仔细观察和分析。

首先,我们需要仔细阅读错误信息。错误信息就像是代码的“哭诉”,它告诉我们哪里出了问题。通常,错误信息会指明出错的行数和类型,这样我们就可以有针对性地去修复。

接下来,我们可以尝试逐步调试代码。调试就是逐行检查代码,看看每一行的执行结果是否符合预期。我们可以在代码中加入一些打印语句,这样在运行时就能看到变量的值和程序的执行流程,帮助我们找到问题所在。

此外,查阅相关文档和社区的讨论也是一个好方法。很多时候,别人遇到过类似的问题,他们的解决方案可能对我们有帮助。我们可以在网上搜索错误信息,看看有没有人分享过解决办法。

最后,保持耐心和好奇心是很重要的。编程的过程就像是解谜,有时候需要反复尝试和思考,才能找到正确的答案。只要我们不断学习和实践,就一定能提高自己的编程能力。

Please find the query
AND Queries With Multiple Expressions Specifying the Same Operator

Consider the following example:

db.inventory.find( {
    $and : [
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    ]
} )
6

我刚刚发现了这个问题,具体情况可以在这里查看: https://jira.mongodb.org/browse/SERVER-2585

在2011年7月24日之前,MongoDB 1.9.1版本之前是不支持嵌套的$OR操作的。而我现在用的是一个旧版本。

撰写回答