【发布时间】:2021-11-04 22:38:20
【问题描述】:
我正在尝试弄清楚如何在 MongoDB 中进行基本连接。我读过关于做聚合的文章:https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/,但这似乎不是我想要的。
我对 NoSQL 也很陌生,所以我不确定我应该在这里使用什么。
我在 MongoDB 中有两个集合,结构如下:
数据库收集 - 员工:
{
_id: 1,
name: 'John Doe',
filesAccess: {
web: true
},
fileIds: [
'fileId1',
'fileId2'
]
},
{
_id: 2,
name: 'Bob Jones',
filesAccess: {
web: false
},
fileIds: [
'fileId3',
'fileId4'
]
}
db 集合 - 文件:
{
_id: fileId1,
fileMetaData: {
location: 'NE'
}
},
{
_id: fileId2,
fileMetaData: {
location: 'NE'
}
},
{
_id: fileId3,
fileMetaData: {
location: 'SW'
}
},
{
_id: fileId4,
fileMetaData: {
location: 'SW'
}
}
我希望能够查询拥有fileAccess.web = true 的所有员工,并获得他们的员工ID、姓名和fileMetaData.location。所有员工文件的location 将相同。所以查询只需要使用员工的第一个fileId,就可以从files集合中获取location
所以我希望我的结果应该是这样的:
{
_id: 1,
name: 'John Doe',
location: 'NE'
}
您将如何在 MongoDB 中构建查询来完成此任务?我使用 Studio3T 作为我的数据库接口。非常感谢任何帮助
【问题讨论】: