Тема: MongoDB
Показать сообщение отдельно
Старый 18.06.2013, 16:26   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: MongoDB

Для оптимизации, проиндексируй collection по experience полю.
Далее в запросе можешь фильтровать:
db.characters.update({ experience: { $gt} }, { $set: { experience} }, { multitrue }); 
Таким образом будут пролистываться только те документы, которые имеют какой либо опыт.
Для того чтобы убедиться в индексе, пропиши:
db.characters.find({ experience: { $gt} }).explain(); 
Должен указать какой индекс использовал, и сколько объектов пролистал (nscanned).


Далее попробуй так:
db.characters.find({ experience: { $gt} }).hint({ $natural}).explain(); 
Используя .hint({ $natural: 1 }) query проигнорирует какие либо индексы, и покажет данные запроса без индексации, разница должна быть на лицо.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (18.06.2013)