Estou usando o mongodb agora.
Eu tenho uma coleção de posts do blog, e o blogpost possui tags arquivadas que são uma matriz, por exemplo
blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']
Como posso fazer essas pesquisas
- contém 'tag1'
- contém ['tag1', 'tag2'],
- contém qualquer um dos ['tag3', 'tag4']
Minha experiência é que, para (2) a solução a seguir é muito mais rápida que a com "$ all":
mas, para ser sincero, não sei por quê. Eu estaria interessado, se alguém souber.
fonte