Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中对GeoJson对象的引用_Mongodb_Mongoose_Geojson - Fatal编程技术网

mongodb中对GeoJson对象的引用

mongodb中对GeoJson对象的引用,mongodb,mongoose,geojson,Mongodb,Mongoose,Geojson,形势 假设我的数据库中有两个集合:城市和事件 cities集合存储有关世界城市的数据,每个城市文档都包含一个locGeoJson字段,如{“type”:“Point”,“geometry”:[lng,lat]},这样我就可以使用geoNear等地理空间功能查询mongodb events集合存储有关城市中发生的事件的数据。因此,每个事件文档都包含一个引用城市对象的city字段。使用ObjectId引用与嵌入城市数据相比,每个城市的事件数量可能非常大 问题 如果我需要某个事件的地理空间数据,我可以

形势

假设我的数据库中有两个集合:
城市
事件

cities
集合存储有关世界城市的数据,每个城市文档都包含一个
loc
GeoJson字段,如
{“type”:“Point”,“geometry”:[lng,lat]}
,这样我就可以使用geoNear等地理空间功能查询mongodb

events
集合存储有关城市中发生的事件的数据。因此,每个事件文档都包含一个引用城市对象的
city
字段。使用ObjectId引用与嵌入城市数据相比,每个城市的事件数量可能非常大

问题

如果我需要某个事件的地理空间数据,我可以查询
events
集合并填充
city
字段(例如使用mongoose)。但我不能(我想)在
事件上利用mongodb地理空间功能,因为它们没有GeoJson字段


这个设计有什么问题吗?我必须重新设计数据库,或者有一些我不知道的mongodb(或mongoose)功能来实现这一点?最佳实践是什么?

您希望如何“利用mongodb地理空间功能”?我很确定您可以在单个管道中组合$geoNear和$lookup,但这个问题应该有一个可解决的问题。你想实现什么?是的,对不起,我是一个db初学者,聚合管道正是我不知道的mongodb。