2017-09-23 72 views
0

2代表我有2个表蒙戈DB选择所有行的FOM根据连接条件

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); 
    }); 

回答

0

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

 
    `db.userdetails.aggregate([ 
    { 
     $lookup: 
     { 
      from: "useraverage", 
      localField: "_id", 
      foreignField: "_id", 
      as: "useraverage" 
     } 
    }, 
    {$unwind : "$useraverage"}, 
    {$project : { 
     name : 1, 
     address : 1, 
     average: "$useraverage.average" 
     }} 
    ],function (err, result) { 
     console.log(result); 
     res.json(result); 
    });`
+0

您好感谢我有一个疑问,我可以使用子查询,而不是用户平均表 – Lijo

+0

我不知道我理解你,做你的意思是一个子文件?如果您使用useraverage表来存储平均值,那么我会将这些信息嵌入到userdetails表中,这样会更快地表现出明智的表现。 –