【问题标题】:Get all documents whose property equals one of the elements in an array获取其属性等于数组中元素之一的所有文档
【发布时间】:2021-03-26 04:53:22
【问题描述】:

我有一个 Post 模型,该模型在其架构中定义了 publisher 属性(我使用的是 Mongoose)。 publisher 属性是一个引用发布者名称的字符串。

我还有一个名为sourceNames 的数组,其中包含所有不同的发布者名称。我想在我的数据库中查询publishersourceName 中的任何一个数组元素匹配的所有帖子。我当前的查询如下所示:

const query = postModel
      .find({ publisher: { $all: sourceNames } })
      .limit(limit)
      .skip(startIndex);

我的查询在执行时没有返回任何内容。有谁知道我正在尝试做的事情是否可以在单个查询中进行(而不是循环 sourceNames 并为每个单独的元素进行查询?

【问题讨论】:

    标签: node.js database mongodb express mongoose


    【解决方案1】:

    只需将$all 替换为$in


    解释

    • $all 正在尝试将 array 与数组中的 all 元素进行匹配。

    • $in 尝试将 字符串或数组 与数组中的一个 in 匹配。

    【讨论】:

    • 哇。傻我。非常感谢。
    • @GaviSchneider 运算符太多。不用担心
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多