Operadores

Operadores relacionais

Os operadores relacionais são os operadores $lt, $lte, $gt, $gte, $eq, $in, $nin.

$eq

O operador $eq verifica se um campo é igual a um determinado valor.

Sintaxe:

{ <field>: { $eq: <value> } }

Exemplo:

db.produtos.find( { qty: { $eq: 20 } } )

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja igual a 20.

$gt

O operador $gt verifica se um campo é maior que um determinado valor.

Sintaxe:

{ <field>: { $gt: <value> } }

Exemplo:

db.produtos.find( { qty: { $gt: 20 } } )

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja maior que 20.

$gte

O operador $gte verifica se um campo é maior que um determinado valor.

Sintaxe:

{ <field>: { $gte: <value> } }

Exemplo:

db.produtos.find( { qty: { $gte: 20 } } )

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja maior ou igual a 20.

$lt

O operador $lt verifica se um campo é menor que um determinado valor.

Sintaxe:

{ <field>: { $lt: <value> } }

Exemplo:

db.produtos.find( { qty: { $lt: 20 } } )

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja menor que 20.

$lte

O operador $lte verifica se um campo é menor ou igual a um determinado valor.

Sintaxe:

{ <field>: { $lte: <value> } }

Exemplo:

db.produtos.find( { qty: { $lte: 20 } } )

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja menor ou igual a 20.

$in

O operador $in retorna os documentos em que um campo que corresponda a determinados valores especificados num array.

Sintaxe:

{ field: { $in: [<value1>, <value2>, … <valueN> ] } }

Exemplo:

db.produtos.find({ "qty": { $in: [30, 15]}})

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja igual a 30 ou 15.

$nin

O operador $in retorna os documentos em que um campo não corresponda a nenhum dos valores especificados num array.

Sintaxe:

{ field: { $nin: [<value1>, <value2>, … <valueN> ] } }

Exemplo:

db.produtos.find({ "qty": { $nin: [30, 15]}})

Neste exemplo, verificamos se na coleção produtos, existem produtos cuja quantidade seja diferente de  30 ou 15.

Operadores lógicos

Os operadores lógicos são os operadores $and, $or, $not e $nor.

$and

O operador $and seleciona documentos onde todas as condições especificadas são satisfeitas.

Sintaxe:

{ $and: [ { condição 1}, { condição 2}, …, {condição n}] }

Exemplo:

db.produtos.find({
  $and: [
    { stock: { $lt: 15 } },
    { preco: 10 }
  ]
})

Neste exemplo, retorna documentos onde o stock < 15 e o preço = 10

$or

Op operador $or seleciona documentos onde pelo menos uma condição é satisfeita.

Sintaxe:

{ $or: [ { condição 1}, { condição 2}, …, {condição n}] }

Exemplo:

db.produtos.find({
  $or: [
    { stock: { $lt: 15 } },
    { preco: 10 }
  ]
})

Neste exemplo, retorna documentos onde o stock < 15 ou o preço = 10

$nor

O operador $nor seleciona documentos que não satisfazem nenhuma das condições especificadas.

Sintaxe:

{ $nor: [ { condição 1}, { condição 2}, …, {condição n}] }

Exemplo:

db.produtos.find({
  $nor: [
    { stock: { $lt: 15 } },
    { preco: 10 }
  ]
})

Neste exemplo, retorna documentos onde o stock não é < 15 e o preço é diferente de 10

$not

O operador $not seleciona documentos que não satisfazem uma expressão específica.

Sintaxe:

{ campo: { $not: { expressão}} }

Exemplo:

db.collection.find({
  idade: { $not: { $gt: 20 } }
})

Este exemplo retorna documentos onde o campo idade é menor ou igual a 20.