我正在为该mongo查询建立索引,但是它不起作用。
db.getCollection("users").find(
{
"find" : "users",
"filter" : {
"userSetting.url" : "michael.john"
},
"sort" : {
"_id" : -1.0
},
"projection" : {
"userSetting" : 1.0,
"user" : 1.0,
"isOnline" : 1.0
},
"limit" : 1.0,
"singleBatch" : true,
"batchSize" : 1.0,
"returnKey" : false,
"showRecordId" : false,
"lsid" : {
"id" : BinData(4, "JdjijSjxxKahhh7dWf92w==")
},
"$db" : "manager"
}
);
我为user.Setting.url和_id(-1)建立了索引,但未使用索引
您有什么办法编制索引吗?
谢谢
答案 0 :(得分:0)
您正在运行mongo shell方法 db.collection.find()
,该方法需要两个参数query
和projection
文档,即正确的方法应该是< / p>
db.getCollection("users").find(
{ "userSetting.url" : "michael.john" },
{
"userSetting" : 1.0,
"user" : 1.0,
"isOnline" : 1.0
}
).batchSize(1).sort({ "_id": -1 }).limit(1);
我相信您正在使用 find
助手发出的 db.runCommand()
命令:
db.runCommand(
{
"find" : "users",
"filter" : {
"userSetting.url" : "michael.john"
},
"sort" : {
"_id" : -1.0
},
"projection" : {
"userSetting" : 1.0,
"user" : 1.0,
"isOnline" : 1.0
},
"limit" : 1.0,
"singleBatch" : true,
"batchSize" : 1.0,
"returnKey" : false,
"showRecordId" : false,
"lsid" : {
"id" : BinData(4, "JdjijSjxxKahhh7dWf92w==")
},
"$db" : "manager"
}
);