【发布时间】:2020-02-25 08:23:24
【问题描述】:
我在创建 MongoDB 查询时遇到了困难。我有五个相互关联的系列。请参阅下面的数据库结构照片。
MongoDB 版本:4.2.3
经过深思熟虑,我通过下面的查询得出了这个结果。
{
"$lookup" : {
"from" : "capcodes",
"localField" : "capcodes",
"foreignField" : "_id",
"as" : "ccr"
}
},
{
"$lookup" : {
"from" : "regios",
"localField" : "ccr.regio",
"foreignField" : "_id",
"as" : "regionaam"
}
},
{
"$lookup" : {
"from" : "disciplines",
"localField" : "ccr.discipline",
"foreignField" : "_id",
"as" : "DisciplineNaam"
}
},
{
"$lookup" : {
"from" : "gpkrs",
"localField" : "ccr.gpkr",
"foreignField" : "_id",
"as" : "gkprNaam"
}
}
我的输出是:
[
{
"_id": "5e501008bb6f081a00aab18d",
"capcodes": [
"0900307",
"0900350"
],
"tijd": "2020-02-21T16:08:07.484Z",
"melding": "BRANP 1 BGM-03 Reanimatie (Inzet AED) PARELGRASSTRAAT ARNHEM 073780",
"device": "MACBOOK-VAN-SIMON",
"__v": 0,
"ccr": [
{
"_id": "0900307",
"regio": "5dd5645d9c432c413ce3cfc1",
"gpkr": "5dd5500f5f640af0afb9a23a",
"functie": "ploegcommandant Arnhem",
"__v": 0,
"discipline": "5ddd10629ce8a5255458cf9b"
},
{
"_id": "0900350",
"regio": "5dd5645d9c432c413ce3cfc1",
"gpkr": "5dd5500f5f640af0afb9a23f",
"functie": "lichtkrant Vredenburg",
"__v": 0,
"discipline": "5ddd10629ce8a5255458cf9b"
}
],
"regionaam": [
{
"_id": "5dd5645d9c432c413ce3cfc1",
"naam": "Gelderland Midden"
}
],
"DisciplineNaam": [
{
"_id": "5ddd10629ce8a5255458cf9b",
"afkorting": "BRW",
"naam": "Brandweer",
"meldingBenaming": "BRAN",
"__v": 0
},
{
"_id": "5ddd10629ce8a5255458cc9b",
"afkorting": "AMBU",
"naam": "Ambulance",
"meldingBenaming": "AMBU",
"__v": 0
}
],
"gkprNaam": [
{
"_id": "5dd5500f5f640af0afb9a23a",
"naam": "Arnhem"
},
{
"_id": "5dd5500f5f640af0afb9a23f",
"naam": "Arnhem Vredenburg"
}
]
}
]
我有这样一个想法,我可以用 Mongo 的 $project 函数最好地解决这个问题,但我不知道如何......提前谢谢!
编辑于上午 12:59
嗯,我找到了一种可能会有所帮助的方法。来自 MongoDB 的 $concat 功能.. 但我无法让它工作
【问题讨论】:
-
如果您使用的是 MongoDB,请确认 >=v3.6
-
使用 MongoDB 版本:4.2.3 :-)
标签: mongodb mongoose aggregation-framework