提问者:小点点

获取其属性等于数组中元素之一的所有文档


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

我还有一个名为sourceNames的数组,它保存所有不同的发布者名称。我想在数据库中查询publisher匹配SourceName中任意一个数组元素的所有文章。我当前的查询如下所示:

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

当我执行查询时,我的查询没有返回任何内容,有人知道我试图在单个查询中执行的操作是否可能(而不是循环源名并对每个单独的元素进行查询)吗?


共1个答案

匿名用户

只需将$all替换为$in即可

Expl

>

  • $all正在尝试将数组与数组中的所有元素匹配。

    $in将尝试将字符串或数组与数组中的字符串或数组进行匹配。