我有一些 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_fieldand上添加搜索条件feature.feature_field。重要的是我想限制结果。
现在我正在使用这样的方法:
- 我查询
places条件为geo和some_filed - 我查询
features条件 onfeature_field和place_id(仅限于 1 中的条件。) - 我在我的应用程序代码中限制了结果
我的问题是:有没有更好的方法来完成这项任务?现在我不能使用 mongolimit()函数,因为当我这样做时,places我可能会以太少的结果结束,因为我需要进行第二次查询。我不能limit()进行第二次查询,因为结果会出现随机顺序,我想按距离对其进行排序。
我知道我可以将数据放入一个文档中,但我认为列表features会很长并且我可能会超过 BSON 大小限制。