我遇到了有关使用Mongodb Shell查询两个地理空间数据集合的作业问题。如下:
饭店数据集的示例记录是:
{
"_id" : ObjectId("55cba2476c522cafdb053ae8"),
"location" : {
"coordinates" : [
-73.9973325,
40.61174889999999
],
"type" : "Point"
},
"name" : "C & C Catering Service"
}
邮政编码数据集中的示例记录是:
{
"_id" : "01002",
"city" : "CUSHMAN",
"loc" : [
-72.51565,
42.377017
],
"pop" : 36963,
"state" : "MA"
}
问题是: 对于上述集合中的每个Pizza餐厅,请找到其所在的城市。您可以假定一家餐厅位于距其位置最近的城市。
我创建了用于查找披萨店的变量:
var pizza = db.restaurants.find({"name" : /pizza/i});
我创建了这些索引,但是不确定天气我是否需要复合索引。
db.zipcodes.createIndex({"loc" : "2dsphere"});
db.restaurants.createIndex({"location" : "2dsphere"});
这些索引正确吗?如果是这样,我应该使用什么来创建查询?聚合和$ nearSphere一样?