mongodb - 如何在从其他集合 mongodb 嵌入的数组中选择具有 id 的集合
问题描述
我有两个收藏:照片和用户。我想在从照片集合中嵌入的喜欢数组中选择具有 user_id 的列表用户。
相片:
{
"_id" : ObjectId(""),
"title": "Title",
"likes" : [
{
"user_id" : ObjectId("")
},
{
"user_id" : ObjectId("")
}
],
}
用户:
{
{
"_id" : ObjectId(""),
"name": "Name1",
"avatar": "Path1",
},
{
"_id" : ObjectId(""),
"name": "Name2",
"avatar": "Path2",
},
}
分页输出:
{
{
"_id" : ObjectId(""),
"name": "Name1",
"avatar": "Path1",
},
{
"_id" : ObjectId(""),
"name": "Name2",
"avatar": "Path2",
},
}
解决方案
我想这会帮助你...
db.getCollection('photos').aggregate([{ $lookup:
{
from: "users",
localField: "likes.user_id",
foreignField: "_id",
as: "likes"
}
} ])
输出是:
{
"_id" : ObjectId(""),
"title" : "Title",
"likes" : [
{
"_id" : ObjectId(""),
"name" : "Name1",
"avatar" : "Path1"
},
{
"_id" : ObjectId(""),
"name" : "Name2",
"avatar" : "Path2"
}
]
}
推荐阅读
- java - RecyclerView 未正确显示 ArrayList
- javascript - 确定字符串索引是否是 JavaScript 中正则表达式匹配的一部分
- java - 在 ControllerAdvice 方法参数验证 (@Valid) 响应中返回 @JsonAlias 值
- amazon-web-services - 如何从不同的 cognito 用户池访问受 S3 保护的文件?
- java - 如何通过 Socket 通过 java 将实时视频与 syn 音频一起流式传输?
- python - Numpy 日志计算
- sql - 如何计算总使用量
- swift - SwiftUI 中的动画无法正常工作
- python - 如何使用 boto3 删除 dynamodb 中的所有项目
- bash - Bash:«语法错误:“(”意外(期待“then”)»和«1:eval:语法错误:“(”意外»