MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So vergleichen Sie zwei Felder in einem Dokument in der Pipeline-Aggregation (mongoDB)

Das Problem liegt nicht beim Vergleichsoperator, sondern bei der Art des Werts, den Sie vergleichen. Sie sollten die Variablentypen in Zahlen ändern. Ändere deine Übereinstimmung basierend auf deinem Vergleich auf 1, -1 oder 0.

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

Sie können $expr verwenden in Version 3.6.

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

Oder

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