Я регистрирую различные действия пользователей на нашем сайте. Каждое действие может быть различного типа: комментарий, поисковый запрос, просмотр страницы, голосование и т. Д. Каждый из этих типов имеет свою собственную схему и общую информацию. Например:
comment : {"_id":(mongoId), "type":"comment", "date":4/7/2012,
"user":"Franck", "text":"This is a sample comment"}
search : {"_id":(mongoId), "type":"search", "date":4/6/2012,
"user":"Franck", "query":"mongodb"} etc...
По сути, в ООП или СУБД я бы разработал класс / таблицу действий и набор унаследованных классов / таблиц (комментарий, поиск, голосование).
Поскольку MongoDb не содержит схемы, я склонен создавать уникальную коллекцию («Действия»), в которой я буду хранить эти объекты вместо нескольких коллекций (коллекция действий + комментарии к коллекции с ключом ссылки на родительское действие и т. Д. ..).
У меня вопрос: а как насчет производительности / времени отклика, если я пытаюсь выполнить поиск по определенным столбцам?
Как я понимаю, передовые методы индексирования, если я хочу, чтобы "все пользователи искали mongodb", я бы индексировал столбцы "type" + "query". Но это не касается всего набора данных, только данных типа «поиск».
Будет ли механизм MongoDb сканировать всю таблицу или просто сосредоточиться на данных, имеющих эту конкретную схему?