簡體   English   中英

MongoDB Geospital復合索引返回錯誤

[英]MongoDB Geospital compound indexing return error

我試圖對我在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
}

根據您的文檔結構,您正在設置的索引看起來正確。 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM