【问题标题】:Match all of the values specified in an array in Mongoose匹配 Mongoose 数组中指定的所有值
【发布时间】:2016-01-24 11:14:21
【问题描述】:

所以我想运行一个猫鼬查询来查找所有搜索数组标签都存在的帖子。

标签数量不同。

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

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

        console.log(post);

    }
);

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

谢谢

【问题讨论】:

    标签: node.js mongodb mongoose mongodb-query


    【解决方案1】:

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

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

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

    作为“或”条件,$in 只会调用包含至少一个项目的任何文档,因此“和”条件表示所有项目。

    【讨论】:

      【解决方案2】:

      您需要使用$all 运算符。

      Post.find({
              'tags.name': { 
                  $all : searcharray
              }
          }, function(err, post) {
      
              console.log(post);
      
          }
      );
      

      【讨论】:

        猜你喜欢
        • 2021-10-13
        • 2015-12-23
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-21
        • 2022-12-11
        相关资源
        最近更新 更多