Le problème n'est pas avec l'opérateur de comparaison, c'est le type de valeur que vous comparez. Vous devez changer les types de variables en nombres. Changez votre correspondance en 1, -1 ou 0 en fonction de votre comparaison.
db.bcamp.aggregate(
[
{$project: {ab: {$cmp: ['$budget','$clickcost']}}},
{$match: {ab:{$eq:1}}}
]).pretty();
Vous pouvez utiliser $expr
en version 3.6.
db.bcamp.aggregate(
[
{$match: {$expr: {$eq: ["$budget", "$clickcost"]}}}
]).pretty();
Ou
db.bcamp.find(
{$expr: {$eq: ["$budget", "$clickcost"]}}
).pretty();