mongodb shell和node.js中的相同查询的行为不同

伊吉特·坎

为什么会这样呢?对于这种差异是否有合乎逻辑的解释?

例如,我有一个db结构:

{
    id: "1"
    category: {
      name: "name1"
      groups: [
         {
             groupName : "groupName1"
             title: ""
         },
         {
             groupName : "groupName2"
             title: ""
         }
      ]
    }
}

查询如下;

db.collection.aggregate({$unwind:"$category.groups"},
                        {$match:{"category.groups.groupName": "groupName2", 
                        "category.name" : "name1"}})

在mongo shell中,它返回为;

   {
        id: "1"
        category: {
          name: "name1"
          groups: [
             groupName : "groupName2"
             title: ""
          ]
        }
    }

在node.js中查询;

db.collection.aggregate({$unwind:"$category.groups"},
                        {$match:{"category.groups.groupName": "groupName2",
                        "category.name" : "name1"}}).
                        toArray(function(err, result) {
    if (result) {
     debugger;
     var res = result;
    } 
  });
};

在node.js中的结果是什么;

{
    id: "1"
    category: {
      name: "name1"
      groups: [
         {
         groupName : "groupName1"
         title: ""
         },
         {
         groupName : "groupName2"
         title: ""
         }
      ]
    }
}
香港强尼

使用node.js驱动程序,您需要将aggregate管道作为数组而不是作为单独的参数进行传递

因此应该是:

db.collection.aggregate([{$unwind: "$category.groups"},
                         {$match: {"category.groups.groupName": "groupName2",
                                  "category.name": "name1"}}
                        ]).toArray(function(err, result) { ... });

外壳的版本是更多的宽容,但为了安全起见,你应该总是使用数组,你可以不包括options参数,否则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Node JS和MongoDB过滤查询

来自分类Dev

Node.js,mongodb和过滤查询

来自分类Dev

使用Node JS在MongoDb中聚合查询

来自分类Dev

Node.js和MongoDB中的类别和子类别

来自分类Dev

MongoDB和Node js异步编程

来自分类Dev

Node.js,MongoDB和并发

来自分类Dev

使用异步在mongodb查询投影中的不同行为

来自分类Dev

Mongodb Shell更新查询

来自分类Dev

如何解析node.js和mongodb查询中的对象数组?

来自分类Dev

如何通过Node.js执行mongoDB Shell脚本?

来自分类Dev

使用Mongoose和Node.js更新MongoDB中的数据

来自分类Dev

如何在Node.js和Mongodb中包含搜索

来自分类Dev

如何在 Node Js 和 Mongodb 中监听数据变化

来自分类Dev

MongoDB聚合查询,其中node.js中的位置

来自分类Dev

在Node.js中优化组合MongoDB查询

来自分类Dev

mongodb(+ mongoose)+ node.js中的同步查询

来自分类Dev

MongoDB聚合查询,其中node.js中的位置

来自分类Dev

如何在MongoDB Shell中添加和删除子文档?

来自分类Dev

如何使用EJS和Express和Node.JS渲染Mongodb查询的结果?

来自分类Dev

MongoDB查询-和条件

来自分类Dev

查询子文档MongoDB Node.JS

来自分类Dev

Node js Mongodb查询号长

来自分类Dev

Node js Mongodb查询号长

来自分类Dev

Node.JS Mongodb 查询/创建

来自分类Dev

使用Node JS和MongoDB时出现多个连接错误

来自分类Dev

Node.JS,Express和MongoDB ::多个集合

来自分类Dev

Node.js + MongoDB全局变量和范围

来自分类Dev

嵌套的MongoDB文档问题(Mongoose和Node Js)

来自分类Dev

使用express,Node.js和MongoDB附加数组