我正在尝试从存款和 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" : [ ]
}
最佳答案
coin_key
在您的情况下是一个字符串。它应该是一个ObjectId
。 mongodb 只是进行相等匹配。 https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
如果您使用的是 v3.6,那么您可以查看同一页面上的连接条件和不相关子查询部分。
关于node.js - Mongodb如何从mongoose中的两个不同集合中获取所有匹配记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48056224/