0
db.runCommand({ geoNear: 「用戶」, 附近:[56,11], maxDistance:6387分之100, distanceMultiplier: 6387, 查詢:{ 「城市」:/^BOS /} })
所以我在這裏試圖獲得與距離(優先級結果)與BOS
開始&城市名稱,因爲我們做出這樣在mys中查詢呼叫ql所以 我無法獲得結果。
請告訴我我該怎麼做?
db.runCommand({ geoNear: 「用戶」, 附近:[56,11], maxDistance:6387分之100, distanceMultiplier: 6387, 查詢:{ 「城市」:/^BOS /} })
所以我在這裏試圖獲得與距離(優先級結果)與BOS
開始&城市名稱,因爲我們做出這樣在mys中查詢呼叫ql所以 我無法獲得結果。
請告訴我我該怎麼做?
將「查詢」參數添加到命令應該給你你正在尋找的結果。
您的查詢可能不工作的一個可能的原因是正則表達式區分大小寫,除非用'i'標誌指定爲不區分大小寫。
例如:
> db.places.save({_id:1, city:"CityA", loc:[56.01,11.01]})
> db.places.save({_id:2, city:"CityB", loc:[56.02,11.02]})
> db.places.ensureIndex({loc:"2d"})
> db.runCommand({ geoNear: "places", near:[56,11], maxDistance:1, distanceMultiplier:1, query: { "city": /^city/} })
{
"ns" : "test.places",
"near" : "1100100000111111111100110000110000111111111100110000",
"results" : [ ],
"stats" : {
"time" : 0,
"btreelocs" : 0,
"nscanned" : 2,
"objectsLoaded" : 2,
"avgDistance" : NaN,
"maxDistance" : 0
},
"ok" : 1
}
不返回任何結果。現在該命令重新運行,在查詢的正則表達式部分不區分大小寫的標誌:
> db.runCommand({ geoNear: "places", near:[56,11], maxDistance:1, distanceMultiplier:1, query: { "city": /^city/i} })
{
"ns" : "test.places",
"near" : "1100100000111111111100110000110000111111111100110000",
"results" : [
{
"dis" : 0.014142135623729393,
"obj" : {
"_id" : 1,
"city" : "CityA",
"loc" : [
56.01,
11.01
]
}
},
{
"dis" : 0.02828427124746381,
"obj" : {
"_id" : 2,
"city" : "CityB",
"loc" : [
56.02,
11.02
]
}
}
],
"stats" : {
"time" : 0,
"btreelocs" : 0,
"nscanned" : 2,
"objectsLoaded" : 2,
"avgDistance" : 0.0212132034355966,
"maxDistance" : 0.028292673810819097
},
"ok" : 1
}
>
兩個位置均返回。使用具有蒙戈查詢正則表達式的文檔可以在「高級查詢」頁的「正則表達式」一節中找到: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
希望上面能夠解決您的問題,並允許您進行正確的查詢。