考虑一个包含两个数组lines
和nodes
的文档,每个数组包含许多子文档,并且为了清晰起见,添加了未显示的嵌套文档
{
{"lines": [
{
"guid": 1
"def": {
"n1": 49,
"n2": 50
}
},
...]
},
{"nodes": [
{
"guid": 49,
"def": {
"x": -43.9709,
"y": 14.8688,
"z": -121.988
}
},
{
"guid": 50,
"def": {
"x": -30.5955,
"y": 29.5512,
"z": -115.024
}
},
...]
}
}
如何查询Mongo以返回lines
的重组文档,仅从nodes
中提取所需内容?
{
{"lines": [
{
"guid": 1
"def": {
"n1": {
"guid": 49,
"def": {
"x": -43.9709,
"y": 14.8688,
"z": -121.988
}
}
"n2": {
"guid": 50,
"def": {
"x": -30.5955,
"y": 29.5512,
"z": -115.024
}
}
}
},
...]
}
}
来自对RDBMS的健康理解,以及对MongoDB的新认识。我花了很多时间用聚合框架来试图实现这个目标,但没有运气。我有什么简单的遗失吗?
我希望备用数据模型可能更合适。毫无疑问,上述内容将开始与相关用例的16 MB BSON文档限制相冲突。