【问题标题】:mongo db select all rows fom 2 tables based on the join conditionmongodb根据连接条件从2个表中选择所有行
【发布时间】:2017-09-24 06:21:09
【问题描述】:

我有两张桌子

 useraverage
    id
    average



 usersdetails
    id
    name
    address

output
id
name
address
average

我已经尝试过查找,但它没有返回数据。

db.userdetails.aggregate([
    {
      $lookup:
        {
          from: "useraverage",
          localField: "id",
          foreignField: "id",
          as: "useraverage"
        }
   }
    ],function (err, result) {
        console.log(result);
        res.json(result);
    });

【问题讨论】:

    标签: node.js mongodb aggregate mongojs


    【解决方案1】:

    您是使用 MongoDB 的 _id 还是您自己的?如果您使用的是第一个选项,那么您的查询应该如下所示:

    `db.userdetails.aggregate([ { $查找: { 来自:“用户平均”, 本地字段:“_id”, 外国字段:“_id”, 如:“用户平均” } }, {$unwind : "$useraverage"}, {$项目:{ 名称:1, 地址1, 平均:“$useraverage.average” }} ],函数(错误,结果){ 控制台.log(结果); res.json(结果); });`

    【讨论】:

    • 嗨,谢谢,我有一个疑问,我可以使用子查询而不是用户平均表
    • 我不确定我是否理解您的意思,您的意思是子文档吗?如果您使用 useraverage 表来存储平均值,那么我会将这些信息嵌入到 userdetails 表中,这样性能会更快。
    猜你喜欢
    • 2013-03-31
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2014-01-01
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多