我有一个嵌套文档,其中包含具有以下结构的嵌套对象:
[
{
"_id": "5c005310b736c137dc96f01f",
"country": "Spain",
"cities":[
{
"id": "mad01",
"city": "Madrid",
"spots":[]
},
{
"id": "bar02",
"city": "Barcelona",
"spots":[]
}
]
},
{
// Other country
}
]
在每个国家/地区内,我都有许多城市,并且每个城市还包含许多点,这些点将成为我特定点的GPS坐标。 现在,我想使用一个包含城市ID和带有我的GPS坐标的数组的JSON文件。 id用于了解这些GPS坐标所属的城市。 具有我所有GPS坐标的“我的文件”具有以下格式:
[
{
"_id": "mad01",
"spots": [
{
"loc": "Point",
"coordinates": [-8.627868, 41.537152]
},
{
"loc": "Point",
"coordinates": [-8.626667, 41.538124]
}
]
},
{
"_id": "bar02",
"spots": [
{
"loc": "Point",
"coordinates": [-8.628019, 41.536317]
},
{
"loc": "Point",
"coordinates": [-8.626013, 41.538349]
}
]
}
]
现在,我想使用此文件来创建一个新文档,以仅保存我的坐标。这个称为“坐标”的新文档是GPS坐标的数组,其ID是在创建文档时生成的。结果应该是:
[
{
"_id" :"5c101ee454225b7314caac4d",
"loc": "Point",
"coordinates": [-8.627868, 41.537152]
},
{
"_id": "5c101ee454225b7314caac4c",
"loc": "Point",
"coordinates": [-8.626667, 41.538124]
},
{
"_id": "5c101ee454225b7314caac4b",
"loc": "Point",
"coordinates": [-8.628019, 41.536317]
},
{
"_id": "5c101ee454225b7314caac4a",
"loc": "Point",
"coordinates": [-8.626013, 41.538349]
}
]
必须将生成的ID插入城市数组中国家的初始文档中,以用作“坐标文档”的外键。因此,我们将在文档中提供以下信息:
[
{
"_id": "5c005310b736c137dc96f01f",
"country": "Spain",
"cities":[
{
"id": "mad01",
"city": "Madrid",
"spots":[
"5c101ee454225b7314caac4d",
"5c101ee454225b7314caac4c"
]
},
{
"id": "bar02",
"city": "Barcelona",
"spots":[
"5c101ee454225b7314caac4b",
"5c101ee454225b7314caac4a"
]
}
]
},
{
// Other country
}
]
是否可以在单个操作中执行此操作。我不知道是否可以使用Bulk,或者有更好的解决方案,可以使用另一种方法获得相似的结果。