1

MongoDB で自分のコレクションにインデックスを作成しようとしています。しかし、私はエラーが発生しています

point not in interval of [ -180, 180 ]

これは私が実行しようとしているクエリです。

db.col_name.ensureIndex({zloc:"2d",title:1,isPublished:1,finishDate:1});

そして、私の文書の構造は以下のとおりです。私はそれをグーグルで調べましたが、本当に満足のいく解決策は見つかりませんでした。

{
"_id": {
    "$oid": "518b758558266943c9ffa0d0"
},
"startDate": null,
"detail": "<p><strong>Fa&ccedil;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
}
4

1 に答える 1

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();
于 2013-05-09T14:53:47.610 に答える