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

标签 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" : [ ]
}

最佳答案

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/

相关文章:

python - 在 MongoDB 中保存位数组

c# - 将复杂对象序列化到 mongoDB

javascript - Websocket 错误 : Error during WebSocket handshake: No response code found in status line

javascript - 如何减少 if 语句的数量

node.js - 使用 Mongoose 模式生成假数据

javascript - 如何在 mongodb 中创建动态文档键

javascript - Limit = 1 = 1ms, Limit > 1 = 150ms (mongo-melt-down)

Node.js 中的 MySQL 回滚

javascript - NodeJS Bluebird promise 在处理程序中创建但未从中返回

java - 如何查找其数组字段仅包含两个特定值的所有文档