MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

come confrontare due campi in un documento nell'aggregazione della pipeline (mongoDB)

Il problema non è con l'operatore di confronto, è il tipo di valore che stai confrontando. Dovresti cambiare i tipi di variabile in Numbers. Cambia la tua corrispondenza in 1, -1 o 0 in base al tuo confronto.

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

Puoi usare $expr nella versione 3.6.

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

Oppure

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