Mongo查询中的AND和OR
我在这个查询中使用了多个操作符。虽然没有语法错误,但我没有得到任何数据(其实应该有的),所以我觉得这是个逻辑错误。问题是,我看不出来哪里出了问题。
查询:
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操作的。而我现在用的是一个旧版本。