Я сейчас использую mongodb.
У меня есть коллекция blogpost, а blogpost содержит теги, которые представляют собой массив, например
blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']
Как я могу сделать эти поиски
- содержит тег1
- содержит ['tag1', 'tag2'],
- содержит любой из ['tag3', 'tag4']
Мой опыт показывает, что для (2) следующее решение намного быстрее, чем решение с "$ all":
но если честно я не за что. Мне было бы интересно, если кто-нибудь знает.
источник