Я работаю над проектом, который использует гибкие схемы. Я настроил локальный сервер mongodb и использую mongoose внутри node.
Возникла интересная проблема с масштабированием, и мне было интересно, нормально ли это время отклика. Если запрос возвращает 50 документов, мне требуется 5-10 секунд, чтобы ответить монго. В той же коллекции запрос, который возвращает 2 документа, составляет миллисекунды.
Это не медленное соединение, потому что оно локальное, мне было интересно, есть ли у кого-нибудь представление о том, что вызывает это.
Я использую OS X и монго 3.0.1.
Редактировать: на данный момент документы почти пусты, только с одним или двумя свойствами.
Редактировать: общее количество документов не имеет большого значения, только возвращаемый размер. Если есть 51 документ, 50 таких как {_id: "...", _schema:"bar"}
и 1 {_id:"...", _schema: "foobar" }
, то collection.find({_schema:"bar"})
занимает несколько секунд, а collection.find({_schema:"foobar"})
не требует времени.
Объясните вывод:
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "mean-dev.documentmodels",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [ ]
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"$and" : [ ]
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"serverInfo" : {
"host" : "Sams-MBP.local",
"port" : 27017,
"version" : "3.0.1",
"gitVersion" : "nogitversion"
},
"ok" : 1