我有一些 mongodb 对象,我们称它为place
包含地理信息的对象,请看示例:
{
"_id": "234235425e3g33424".
"geo": {
"lon": 12.23456,
"lat": 34.23322
}
"some_field": "value"
}
对于 every place
,功能列表与以下内容相关联:
{
"_id": "2334sgfgsr435d",
"place_id": "234235425e3g33424",
"feature_field" : "some_value"
}
如您所见,由于place_id
字段,功能与地点相关联。现在我想找到:features
与最近连接的列表places
。但我还想在place.some_field
and上添加搜索条件feature.feature_field
。重要的是我想限制结果。
现在我正在使用这样的方法:
- 我查询
places
条件为geo
和some_filed
- 我查询
features
条件 onfeature_field
和place_id
(仅限于 1 中的条件。) - 我在我的应用程序代码中限制了结果
我的问题是:有没有更好的方法来完成这项任务?现在我不能使用 mongolimit()
函数,因为当我这样做时,places
我可能会以太少的结果结束,因为我需要进行第二次查询。我不能limit()
进行第二次查询,因为结果会出现随机顺序,我想按距离对其进行排序。
我知道我可以将数据放入一个文档中,但我认为列表features
会很长并且我可能会超过 BSON 大小限制。