【发布时间】:2018-06-22 13:49:23
【问题描述】:
我有以下文档结构:
{
clientId: 1001
buildings: [
_id: campus1
rooms: [
{
_id: 2001
name: conference
},
{
_id: 2002
name: meeting
},
]
]
}
我想获得所有房间 ID 及其父 ID 的扁平化版本:
{
roomId: 2001
buildingId: campus1
},
{
roomId: 2001
clientId: 1001
},
{
roomId: 2002
buildingId: campus1
},
{
roomId: 2002
clientId: 1001
}
这将从房间 ID 开始,向上一层打印房间 ID 和建筑物 ID。之后再次从房间 id 开始,但这次向上 2 级并打印房间 id 和客户 id。
有没有办法做到这一点?
到目前为止,我没有得到想要的结果:
db.collection.aggregate(
[
{ $unwind:"$buildings" },
{ $unwind:"$building.rooms" },
{
$project: {
_id: 0,
client: "$_id",
building: "$buildings._id",
room: "$buildings.floors.rooms._id",
}
},
{ $unwind:"$room" }
]
)
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework spring-data-mongodb