Vấn đề không nằm ở toán tử so sánh, mà là kiểu giá trị mà bạn đang so sánh. Bạn nên thay đổi loại biến thành Numbers. Thay đổi kết quả phù hợp của bạn thành 1, -1 hoặc 0 dựa trên so sánh của bạn.
db.bcamp.aggregate(
[
{$project: {ab: {$cmp: ['$budget','$clickcost']}}},
{$match: {ab:{$eq:1}}}
]).pretty();
Bạn có thể sử dụng $expr
trong phiên bản 3.6.
db.bcamp.aggregate(
[
{$match: {$expr: {$eq: ["$budget", "$clickcost"]}}}
]).pretty();
Hoặc
db.bcamp.find(
{$expr: {$eq: ["$budget", "$clickcost"]}}
).pretty();