使用Node JS在MongoDb中聚合查询

雷卡

我是Mongodb的新手,我有两个集合用户和产品。

在产品集合中映射用户ID。产品集合具有productid,producttype,productname和userid作为字段。

我需要写汇总查询

  1. 使用汇总查询获取基于“ product_type”的所有产品并填充用户(必须使用汇总查询)
  2. 使用汇总查询来获取基于用户城市的所有产品(必须使用汇总查询)

var MongoClient = require("mongodb").MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("demo1");
  dbo
    .collection("products")
    .aggregate([{
        $match: {
          product_type: "$product_type"
        }
      },
      {
        $lookup: {
          from: "users",
          localField: "user_id",
          foreignField: "_id",
          as: "userdetails"
        }
      }
    ])
    .toArray(function(err, res) {
      if (err) throw err;
      console.log(JSON.stringify(res));
      db.close();
    });
});

我已经尝试过了,但是不确定是否正确。

请帮忙。

ΝΝιΓΞΗΛψΚ

您所拥有的对于按类型获取产品是正确的。要按用户所在的城市获取产品,请尝试以下管道:

db.products.aggregate([
{
  $lookup: {
    from: "users",
    let: { user_id: "$user_id" },
    pipeline: [
      { $match: {
          $expr: {
            $and: [ { $eq: [ "$_id", "$$user_id" ] },
                    { $eq: [ "$city", "new york" ] }]}}}],
    as: "user"
  }
},
{
  $match: {
    $expr: { $gt: [ { $size: "$user" }, 0 ] }
  }
}
])

测试:https//mongoplayground.net/p/BebeOCd4wLQ

更新:这是另一种方式:

db.products.aggregate([
    {
        $lookup: 
        {
            from: "users",
            localField: "user_id",
            foreignField: "_id",
            as: "user"
        }
    },
    {
        $match: {
            "user.city": "new york"
        }
    },
    {
        $project: {
            user: 0
        }
    }
])

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用MongoDB聚合查询匹配集合中的特定项目

来自分类Dev

使用聚合查询删除mongodb中的重复项

来自分类Dev

聚合查询中的Mongodb Java驱动程序使用限制

来自分类Dev

Node.js:如何在查询聚合中返回对象?

来自分类Dev

在 Node.js 中动态构建 Mongoose 聚合查询

来自分类Dev

使用 spring 的 MongoDB 聚合查询

来自分类Dev

如何使用node.js在mongodb中获取按组名分组的聚合值?

来自分类Dev

使用Mongoose的Node.js中的MongoDB聚合未获得正确的结果

来自分类Dev

FindOne() 可用于返回记录,但不能对 Node.js 使用 MongoDB 聚合查询(id 的总和记录)

来自分类Dev

使用Node JS和MongoDB过滤查询

来自分类Dev

如何使用 mongodb 和 node 中的聚合更新值

来自分类Dev

使用group-by的Mongodb聚合查询

来自分类Dev

MongoDB如何使用聚合代替以下查询

来自分类Dev

使用聚合函数的MongoDB嵌套查询

来自分类Dev

Mongodb 聚合在终端中运行,但在使用 mongoose 在 node.js 中运行时,它返回“APIError:参数必须是聚合管道运算符”

来自分类Dev

使用MySQL在Node JS中嵌套查询

来自分类Dev

如何使用Node.js中的变量创建mongodb查询对象

来自分类Dev

如何从数组元素创建对象以传递到mongoose和node.js中的mongodb聚合中?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使用Node JS将mongoDB查询记录到终端

来自分类Dev

使用node.js查询mongoDB的特定字段

来自分类Dev

聚合查询中如何使用索引?

来自分类Dev

使用MongoDB和Node.js进行类别层次结构聚合

来自分类Dev

使用MongoDB和Node.js进行类别层次结构聚合

来自分类Dev

无法在Node.js应用程序中使用MongoClient在远程mongodb集合中运行“查找”查询

来自分类Dev

mongodb聚合查询在使用$ sum时未返回正确的总和

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

    使用MongoDB聚合查询匹配集合中的特定项目

  4. 4

    使用聚合查询删除mongodb中的重复项

  5. 5

    聚合查询中的Mongodb Java驱动程序使用限制

  6. 6

    Node.js:如何在查询聚合中返回对象?

  7. 7

    在 Node.js 中动态构建 Mongoose 聚合查询

  8. 8

    使用 spring 的 MongoDB 聚合查询

  9. 9

    如何使用node.js在mongodb中获取按组名分组的聚合值?

  10. 10

    使用Mongoose的Node.js中的MongoDB聚合未获得正确的结果

  11. 11

    FindOne() 可用于返回记录,但不能对 Node.js 使用 MongoDB 聚合查询(id 的总和记录)

  12. 12

    使用Node JS和MongoDB过滤查询

  13. 13

    如何使用 mongodb 和 node 中的聚合更新值

  14. 14

    使用group-by的Mongodb聚合查询

  15. 15

    MongoDB如何使用聚合代替以下查询

  16. 16

    使用聚合函数的MongoDB嵌套查询

  17. 17

    Mongodb 聚合在终端中运行,但在使用 mongoose 在 node.js 中运行时,它返回“APIError:参数必须是聚合管道运算符”

  18. 18

    使用MySQL在Node JS中嵌套查询

  19. 19

    如何使用Node.js中的变量创建mongodb查询对象

  20. 20

    如何从数组元素创建对象以传递到mongoose和node.js中的mongodb聚合中?

  21. 21

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

  22. 22

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

  23. 23

    如何使用Node JS将mongoDB查询记录到终端

  24. 24

    使用node.js查询mongoDB的特定字段

  25. 25

    聚合查询中如何使用索引?

  26. 26

    使用MongoDB和Node.js进行类别层次结构聚合

  27. 27

    使用MongoDB和Node.js进行类别层次结构聚合

  28. 28

    无法在Node.js应用程序中使用MongoClient在远程mongodb集合中运行“查找”查询

  29. 29

    mongodb聚合查询在使用$ sum时未返回正确的总和

热门标签

归档