为什么我创建一个2dsphere索引,但当我查询它显示s2cursor时,我认为它应该是geosearchcursor。 mongodb文件说: http://docs.mongodb.org/manual/reference/method/cursor.explain/#explain-output-fields-core
cursor是一个字符串,用于报告查询使用的游标类型 操作:
BasicCursor表示完整的集合扫描。 BtreeCursor表示 该查询使用了索引。游标包括索引的名称。 当查询使用索引时,explain()的输出包括 indexBounds详细信息。 GeoSearchCursor表示查询使用了 地理空间索引。
我的文件:
{
"_id" : "b2lblohv6qvcwzd6o2pcqep8v0",
"eventid" : "b2lblohv6qvcwzd6o2pcqep8v0",
"loc" : {
"type" : "Point",
"coordinates" : [
-122.4127337,
37.7709975
]
},
"end" : 1379399400,
"start" : 1379392200,
}
这是我的mongodb shell输出:
> db.collection_ca1.ensureIndex({'loc':'2dsphere'})
> db.collection_ca1.find({'loc':{'$geoWithin':{'$centerSphere':[[-118.397264,34.019763], 0.00001]}}}).explain()
{
"cursor" : "S2Cursor",
"isMultiKey" : true,
"n" : 1979,
"nscannedObjects" : 1979,
"nscanned" : 25482,
"nscannedObjectsAllPlans" : 1979,
"nscannedAllPlans" : 25482,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 6,
"nChunkSkips" : 0,
"millis" : 12215,
"indexBounds" : {
},
"nscanned" : 25482,
"matchTested" : NumberLong(23503),
"geoTested" : NumberLong(23503),
"cellsInCover" : NumberLong(1),
"server" : "localhost:27017"
}
答案 0 :(得分:1)
2.4中添加的'2dsphere'索引尚未更新该文档。
S2Cursor是对'2dsphere'索引的优化搜索。
您应该向DOCS项目提交Jira票证以更新它:https://jira.mongodb.org/browse/DOCS