sql >> Base de Datos >  >> NoSQL >> MongoDB

cómo comparar dos campos en un documento en la agregación de canalización (mongoDB)

El problema no es con el operador de comparación, es el tipo de valor que está comparando. Debe cambiar los tipos de variable a Números. Cambie su coincidencia a 1, -1 o 0 según su comparación.

db.bcamp.aggregate(
[
  {$project: {ab: {$cmp: ['$budget','$clickcost']}}},
  {$match: {ab:{$eq:1}}}
]).pretty();

Puedes usar $expr en la versión 3.6.

db.bcamp.aggregate(
[
  {$match: {$expr: {$eq: ["$budget", "$clickcost"]}}}
]).pretty();

O

db.bcamp.find(
 {$expr: {$eq: ["$budget", "$clickcost"]}}
).pretty();