我有幾個類似於下面的例子的地理查詢。它們不僅是Poly查詢中的一個要點,而且還有其他方面。MongoDB - Compond Geo多邊形索引
查詢:
{
"point": {
"$within": {
"$polygon": [
[
41.878335,
-87.627319999999997
],
[
41.877602000000003,
-87.627319999999997
],
[
41.879672999999997,
-87.627031000000002
],
[
41.878723999999998,
-87.627204000000006
],
[
41.878507999999997,
-87.627262000000002
],
[
41.878335,
-87.627262000000002
]
]
}
},
"MYLISTING": {
"$in": [
"All"
]
},
"SUPPORT": {
"$in": [
"Y"
]
},
"TYPE": {
"$in": [
"Food"
]
}
}
爲了讓這些快我添加其他每個項目索引使它:做這個的解釋時
{ "v" : 1,
"key" : {
"point" : "2d",
"MYLISTING" : 1,
"SUPPORT" : 1,
"TYPE" : 1
},
"ns" : "mydb.collection",
"name" : "point_2d_MYLISTING_1_SUPPORT_1_TYPE_1"
}
但是,它似乎永遠不會使用這個索引,它只是使用其他索引,我只有一點:最初創建的2d索引。
我在這裏有一些誤解嗎?
嘗試使用參數「true」運行解釋。這將爲所有查詢計劃生成統計信息,而不僅僅是最優的一個。它可以提供更多關於你的查詢使用它的索引的信息。 –
你不能在一個集合上有多個'2d'索引(你有兩個簡單的'2d'和一個帶有附加字段的索引)。這在文檔頁面中提到。 –