As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$expr
Novo na versão 4.0.
Não é suportado pelo cluster elástico.
O $expr operador no Amazon DocumentDB permite que você use expressões de agregação dentro da linguagem de consulta. Ele permite que você realize comparações e cálculos complexos nos campos de um documento, da mesma forma que você usaria os estágios do pipeline de agregação.
Os operadores $eq$lt,$lte,$gt, e de $gte comparação colocados em um $expr operador podem usar um índice, incluindo um índice na from coleção referenciada em um $lookup estágio.
Limitações
-
Os índices só podem ser usados para comparações entre campos e constantes, portanto, o operando deve ser resolvido como uma constante. Por exemplo, uma comparação entre
$ae um valor constante pode usar um índice, mas uma comparação entre$ae$bnão. -
Índices multichave, parciais ou esparsos não são usados. Nesses casos, a consulta volta para uma varredura de coleção.
-
Quando o
letoperando é resolvido para um valor vazio ou ausente, a comparação não pode usar uma busca de índice direcionada. Nesse caso, o Amazon DocumentDB executa uma verificação completa do índice.
Parâmetros
-
expression: uma expressão que retorna um valor booleano, permitindo que você realize comparações e cálculos nos campos do documento.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra como usar o $expr operador para localizar todos os documentos em que o manufacturingCost campo é maior que o price campo.
Crie documentos de amostra
db.inventory.insertMany([ { item: "abc", manufacturingCost: 500, price: 100 }, { item: "def", manufacturingCost: 300, price: 450 }, { item: "ghi", manufacturingCost: 400, price: 120 } ]);
Exemplo de consulta
db.inventory.find({ $expr: { $gt: ["$manufacturingCost", "$price"] } })
Saída
{ "_id" : ObjectId("60b9d4d68d2cac581bc5a89a"), "item" : "abc", "manufacturingCost" : 500, "price" : 100 },
{ "_id" : ObjectId("60b9d4d68d2cac581bc5a89c"), "item" : "ghi", "manufacturingCost" : 400, "price" : 120 }
Exemplos de código
Para ver um exemplo de código para usar o $expr comando, escolha a guia do idioma que você deseja usar: