MongoTemplate中聚合查询与Spring数据mongodb的执行计划
我使用的是spring数据mongodb,希望聚合查询实现我使用的是MongoTemplate和聚合方法。当我跟踪日志时,它会显示如下查询:MongoTemplate中聚合查询与Spring数据mongodb的执行计划,mongodb,spring-data-mongodb,mongotemplate,Mongodb,Spring Data Mongodb,Mongotemplate,我使用的是spring数据mongodb,希望聚合查询实现我使用的是MongoTemplate和聚合方法。当我跟踪日志时,它会显示如下查询: find: track.$cmd { "aggregate" : "stayRecord" , "pipeline" : [ { "$match" : { "vehicleId" : { "$all" : [ 10]}}} , { "$match" : { "stayTime" : { "$gte" : { "$date" : "2016-06-20T18
find: track.$cmd { "aggregate" : "stayRecord" , "pipeline" : [ { "$match" : { "vehicleId" : { "$all" : [ 10]}}} , { "$match" : { "stayTime" : { "$gte" : { "$date" : "2016-06-20T18:30:00.000Z"}}}} , { "$match" : { "stayTime" : { "$lt" : { "$date" : "2016-06-21T18:30:00.000Z"}}}} , { "$group" : { "_id" : "$stayTime" , "count" : { "$sum" : 1}}}}
我想知道这个查询的执行计划。
如何确定在查询过程中是否使用了索引?请注意,为了遵循以下步骤,您需要mongo shell能够理解的工作聚合查询 遵循以下步骤:- 1) 去mongo shell 2) 执行use命令切换到数据库
use <database name>
"winningPlan" : {
"stage" : "LIMIT",
"limitAmount" : 0,
"inputStage" : {
"stage" : "SKIP",
"skipAmount" : 0,
"inputStage" : {
"stage" : "FETCH",
"filter" : {
"user.followers_count" : {
"$gt" : 1000
}
},
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"created_at" : -1
},
"indexName" : "created_at_-1",
"isMultiKey" : false,
"direction" : "backward",
"indexBounds" : {
"created_at" : [
"[MinKey, MaxKey]"
]
}
}
}
}
}