Nodejs猫鼬在一个查询中从两个集合中获取结果

时间:2018-10-10 13:01:17

标签: node.js mongodb mongoose

所以我遇到了一个问题,我需要使用猫鼬从NodeJS中的两个集合中获取结果。基本上我有users集合和boughtItems集合。

users集合由_idusername

组成

boughtItems集合由item_idusername(购买商品的用户)组成

有人可以显示如何从usersboughtItems获取结果,所以当我显示所有users时,他们所购买的商品将显示在同一页面的名称旁边。

我有两个模型:UserBoughtItem

User.aggregate([{
    $lookup: {
        from: "boughtitems", // collection name in db
        localField: "username",
        foreignField: "username",
        as: "boughtitems"
    }
}]).exec(function(err, users) {
    console.log(users);
});

此代码块使用户返回带有buyedItems的商品,但是每个购买的商品都是[Object]如何从该object获取全部信息?

所以我做了JSON.stringify(users),现在我得到了所有信息。

我明白了:

enter image description here

如何在渲染文件中显示购买项:

{{#each users}}
   {{this.boughtitem['item_power']}}
{{/each}}

1 个答案:

答案 0 :(得分:0)

您的查询实际上正在获取BoughtItem数据。问题是console.log,它不打印嵌套对象。如果要打印整个对象,请尝试以下操作:

console.log(JSON.stringify(users));