匹配 Mongoose 数组中指定的所有值

pop*_*rob 4 mongoose mongodb node.js mongodb-query

所以我想运行一个猫鼬查询来查找存在所有 searcharray 标签的帖子。

标签的数量各不相同。

目前,这会返回存在任何标签的帖子。

Post.find({
        'tags.name': { 
            $in : searcharray
        }
    }, function(err, post) {

        console.log(post);

    }
);
Run Code Online (Sandbox Code Playgroud)

我检查了文档,但无法将其拼凑在一起。

谢谢

Bla*_*ven 6

您想要$all,这基本上是一个$and具有较短语法的操作,就像具有较短语法的$in操作一样$or

Post.find({"tags.name": { "$all": searcharray } }, function(err, posts) {
        console.log(posts);
});
Run Code Online (Sandbox Code Playgroud)

这要求您的“标签”数组具有与列表中指定的“所有”项目的“名称”匹配的成员searchArray

作为“或”条件,人们$in只会回忆起至少包含其中一项的任何文档,因此“和”条件意味着所有项目。