Mongodb如何从mongoose中的两个不同集合中获取所有匹配的记录

时间:2018-01-02 06:03:20

标签: node.js mongodb

我正在尝试从存款和coin_infos集合中获取相关结果,但我得到的是空用户数组。

> db.deposits.aggregate([{ $lookup: { from: 'coin_infos', localField: 
'coin_key', foreignField: '_id', as: 'user' } }]).pretty();
{
"_id" : ObjectId("5a4b0f4a32c51230087a5453"),
"user_id" : "5a4b0787a0050c20a6be44b2",
"coin_key" : "5a4b07b2a0050c20a6be44b3",
"label" : "Test",
"address" : "17dhdZSEtoabadme6M9WBnqS4n6WU3ycJm",
"__v" : 0,
"user" : [ ]
}

1 个答案:

答案 0 :(得分:1)

coin_key是您的案例中的字符串。应该是ObjectId。 mongodb只做一个平等的比赛。 https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

如果您使用的是v3.6,那么您可以在同一页面上查看加入条件和不相关的子查询部分。