2012-06-20 2 views
0

В MongoDB У меня есть запрос, который выглядит следующим образом, чтобы выяснить, для которого комментарии пользователь уже проголосовал:MongoDB multikeys на _id + некотором значении

db.comments.find({ 
    _id: { $in: [...some ids...] }, 
    votes.uid: "4fe1d64d85d4f4c00d000002" 
}); 

Как сказано в документации, вы должны иметь

один индекс на запрос

Так что лучше создать ключи на _id + votes.uid или достаточно просто индекс votes.uid, поскольку Монго обрабатывает _id автоматически я n любым способом?

+0

вам не нужен ключи, но я бы только добавить индекс 'vote.uid', если запросы становятся слишком медленными. –

ответ

0

Автоматический индекс на _id.

В зависимости от ваших запросов (сколько ид у вас есть в $ в массиве) и данных (сколько голосов у вас есть на одном объекте) вы можете создать индекс по votes.uid.

Заботьтесь о которых индекс используется во время выполнения запроса и помните, что вы можете заставить Монго использовать индекс вы хотите, добавляя .hints(field:1) или hints('indexname')

Смежные вопросы