Знаю, что есть функция .createIndex, но как мне составить фильтр/настроить её так, чтобы она индексировала все userID отдельно?
Можно, конечно, использовать
.createIndex({userID:"111111"})
.createIndex({userID:"222222"})
.createIndex({userID:"333333"})
Нужный результат мы получим, но в коллекции около 2000 уникальных id и делать это таким способом - не самое рациональное решение.
Короче, индексация полей - это самый последний вопрос в деле освоения MongoDB.
Вы им просто не заморачивайтесь до тех пор, пока в общих чертах не разберётесь в базой. Пока что он вам вообще не нужен.
Abcdefgk, Я ещё плохо ориентируюсь. Поле, это {userID:"222222", content:"text"}?
Дело в том, что мне нужно получить три случайно выбранных значения "content", для определённого userID. Я планировал использовать такой фильтр -
Dmitry221060, Поле - это userID: и content:
В переводе на обычно-человеческий язык ваш запрос к базе может представлять собой нечто вроде "получить все тексты в коллекции такой-то, где id автора такое-то" - а уж какие из них три случайные отдать - это ваша забота. К базам данных не бывает запросов со словом "случайно".
Но ведь это проиндексирует всю коллекцию или я чего-то не понимаю? Мне нужна отдельная система индексов для каждого userID, как в примере.
Извините, если вопрос глупый - учить MongoDB начал только сегодня)