Array (Lista)
Última atualização: 2026-10-09
Array (Lista)
Array guarda uma lista ordenada de qualquer valor BSON (incluindo arrays e documentos aninhados). A correspondência é por pertencimento: `{ tags: 'mongodb' }` corresponde a docs cujo campo tags contém o valor. `$elemMatch` força múltiplas condições sobre o mesmo elemento. Indexar um campo array constrói um índice multikey, expandindo cada elemento.
| Categoria | Tipos BSON |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ tags: ["mongodb", "nosql"] }
db.posts.find({ tags: "mongodb" })
db.posts.find({ ratings: { $elemMatch: { score: { $gte: 4 }, user: "alice" } } })
Retorno:O próprio valor de matriz; as consultas retornam documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// Array: pertencimento e $elemMatch
use shop
db.posts.insertOne({ tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] })
db.posts.find({ tags: 'mongodb' })
Saída:
{ _id: ObjectId('...'), tags: ['mongodb', 'tutorial'], ratings: [{ score: 5, user: 'alice' }] }
📌 Notas
- Consultar um campo array significa 'contém qualquer elemento'
- $elemMatch aplica todas as condições ao mesmo elemento
- Indexar um array produz um índice multikey
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QA correspondência de arrays exige igualdade exata?
APertencimento. { tags: 'a' } corresponde a docs cujo campo tags contém 'a', não a igualdade do array inteiro.
QComo corresponder um elemento a várias condições?
AUse $elemMatch: { score: ..., user: ... } para que todas as condições atinjam o mesmo elemento.
QArrays podem ser indexados?
ASim — um índice multikey é construído, com cada elemento do array indexado separadamente.