У меня есть коллекция CosmosDb - MongoDb, которую я использую исключительно как хранилище ключей / значений для произвольных данных, где _id является ключом для моей коллекции.
Когда я запускаю запрос ниже:
globaldb:PRIMARY> db.FieldData.find({_id : new BinData(3, "xIAPpVWVkEaspHxRbLjaRA==")}).explain(true)
Я получаю такой результат:
{
"_t" : "ExplainResponse",
"ok" : 1,
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "data.FieldData",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [ ]
},
"winningPlan" : {
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 1,
"executionTimeMillis" : 106,
"totalKeysExamined" : 0,
"totalDocsExamined" : 3571,
"executionStages" : {
},
"allPlansExecution" : [ ]
},
"serverInfo" : #REMOVED#
}
Обратите внимание, что totalKeysExamined равно 0, а totalDocsExamined равно 3571 и запрос занял 106 мс. Если я запускаю без .explain (), он находит документ.
Я бы ожидал, что этот запрос будет молниеносным, учитывая, что поле _id автоматически индексируется как уникальный первичный ключ в коллекции. По мере того как размер этой коллекции увеличивается, я только ожидаю, что эта проблема усугубится.
Я определенно не понимаю что-то об индексе и о том, как он работает здесь. Любая помощь будет наиболее ценной.
Спасибо!