【问题标题】:Mongoose: Get which condition failed in a 'find' queryMongoose:获取“查找”查询中哪个条件失败
【发布时间】:2017-10-27 18:34:52
【问题描述】:

有没有办法找出在 find 查询中失败的条件。

考虑以下架构:

{
    a: String,
    b:[{
        b_id: String
      }]
}

我正在搜索匹配“a”和“b_id”的记录。但是如果 'a' 不匹配,那么我需要采取不同的行动,如果没有找到 'b_id',则采取不同的行动。

现在我正在寻找带有“a”的文档,然后循环遍历结果以匹配“b_id”。这对我来说不是一个有效的解决方案,因为循环很容易超过数万次。

有没有办法找出不匹配的条件或任何其他有效的方法?

【问题讨论】:

  • 如果您有 'a' 'b_id' 条件,则仅检索同时满足这两个条件的文档。如果您需要具有任一条件的文档,则需要使用 or 查询。

标签: node.js mongodb mongoose


【解决方案1】:

在 mongo 中,您可以运行 collection.find().explain() 函数,它将解释所有计划以及它如何构建查询、顺序和其他有用信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多