MongoDB – Como filtrar documentos: Cláusula WHERE
- Postado por Adriano Bonacin
- Categorias mongodb
- Data 13/01/2022
- Comentários 0 comentário
No último artigo fizemos nossa query (find) sem filtro. Nosso objetivo agora é conseguir filtrar documentos de interesse, o que faz a cláusula where no tradicional SQL. Por exemplo, mostrar apenas carros de determinada marca. Esta opção tem alto impacto na performance das queries e na vida real praticamente toda query é baseada em apenas um subconjunto dos nossos docs.
MÉTODO FIND
Basicamente a funcão find() aceita dois parametros do tipo documento. Isso é importante e um pouco estranho para quem vem do mundo SQL. Se quiser dar uma olhadinha na documentação oficial, siga por aqui.
O que isso quer dizer? Os parâmetros terão a forma:
{"field1": "value1", ...}
Isso mesmo, um documento. Vamos ver como isso funciona para ilustrar e tentar deixar mais claro essa conversa.
Por exemplo, vamos filtrar apenas os carros da marca HONDA. Nosso doc de filtro vai informar exatamente isso: {“marca”: “HONDA”}. Veja como a query vai ficar.
yadax> db.cars.find({"marca": "HONDA"})
[ { _id: ObjectId("61d76829222d2ee4efa32edc"), marca: 'HONDA', modelo: 'CIVIC', ano_fabricacao: 2015, ano_modelo: 2016, cor: 'Prata', preco: 60000 }, { _id: ObjectId("61d76829222d2ee4efa32edd"), marca: 'HONDA', modelo: 'Civic', ano_fabricacao: 2018, ano_modelo: 2018, cor: 'Branco', preco: 80000 }, { _id: ObjectId("61d76829222d2ee4efa32ede"), marca: 'HONDA', modelo: 'FIT', ano_fabricacao: 2019, ano_modelo: 2019, cor: 'Branco', preco: 50000 } ] yadax>
Se quisermos buscar os “FIT”s, a query fica:
yadax> db.cars.find({"modelo": "FIT"})
[
{
_id: ObjectId("61d76829222d2ee4efa32ede"),
marca: 'HONDA',
modelo: 'FIT',
ano_fabricacao: 2019,
ano_modelo: 2019,
cor: 'Branco',
preco: 50000
}
]
yadax>
Se precisar de mais de uma condição, o operador default é AND. Vamos buscar os carros da FIAT com ano_modelo 2020.
yadax> db.cars.find({"marca": "FIAT","ano_modelo": 2020})
[
{
_id: ObjectId("61d76829222d2ee4efa32ee2"),
marca: 'FIAT',
modelo: 'TORO',
ano_fabricacao: 2020,
ano_modelo: 2020,
cor: 'Preto',
preco: 90000
},
{
_id: ObjectId("61d76829222d2ee4efa32ee3"),
marca: 'FIAT',
modelo: 'TORO',
ano_fabricacao: 2019,
ano_modelo: 2020,
cor: 'Prata',
preco: 80000
}
]
yadax>
Depois vamos explorar outros operadores, como o OR, “maior que” entre outros. Ficamos por aqui e no próximo falaremos de projection (mostrar apenas as colunas de interesse). Até mais.
Tag:mongodb