我正在尝试在MongoDB中为我的集合创建一个索引。但我得到错误的
point not in interval of [ -180, 180 ]
这是我试图运行的查询。
db.col_name.ensureIndex({zloc:"2d",title:1,isPublished:1,finishDate:1});
我的文件结构如下。我用Google搜索了,但没有找到任何令人满意的解决方案。
{
"_id": {
"$oid": "518b758558266943c9ffa0d0"
},
"startDate": null,
"detail": "<p><strong>Façiba Brunch Keyfi</strong><p>",
"imageUrl": [
"http://img2.fbfcdn.com/files/images/deal/image/450_H/55/556101_fe85.jpg?r=3"
],
"isPublished": "on",
"category_id": 9,
"finishDate": null,
"webLink": "http://www.firsatbufirsat.com/firsat/",
"shopname": "Façiba & Deha Pansiyon & Restaurant & Cafe & Bar",
"publisher": "web",
"title": "Façiba'da Damak Zevkinize Hitap Edecek Açık Büfe Brunch Keyfi, Sucuklu Yumurta, Patates Tava ve Sınırsız Çay Eşliğinde 35 TL Yerine Sadece 18 TL",
"duration": 0,
"price": "18.00 TL",
"zloc": [
41.144269,
29.590859
],
"category_name": "Yemek Fırsatları",
"address": "Ahmetli Köyü Sortullu Mevkii İdeal Cad. No:9 Şile, İstanbul",
"user_id": null
}
答案 0 :(得分:1)
根据您的文档结构,您正在设置的索引看起来是正确的。 Mongo告诉你的是,你的数据库中有一个纬度或经度超出允许范围的条目。
尝试运行以下查询以确认:
db.col_name.find({"loc.lat": { $lt : -180 }}).count();
db.col_name.find({"loc.lat": { $gt : 180 }}).count();
db.col_name.find({"loc.long": { $lt : -180 }}).count();
db.col_name.find({"loc.long": { $lt : 180 }}).count();