我有一个Post模型,它的模式中定义了一个'publisher'属性(我使用的是Mongoose)。publisher属性是引用发布者名称的字符串。
我还有一个名为sourceNames的数组,它保存所有不同的发布者名称。我想在数据库中查询publisher匹配SourceName中任意一个数组元素的所有文章。我当前的查询如下所示:
const query = postModel
.find({ publisher: { $all: sourceNames } })
.limit(limit)
.skip(startIndex);
当我执行查询时,我的查询没有返回任何内容,有人知道我试图在单个查询中执行的操作是否可能(而不是循环源名并对每个单独的元素进行查询)吗?
短
只需将$all
替换为$in
即可
Expl
>
$all
正在尝试将数组与数组中的所有元素匹配。
$in
将尝试将字符串或数组与数组中的字符串或数组进行匹配。