MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

cách so sánh hai trường trong một tài liệu trong tổng hợp đường ống (mongoDB)

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();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao MongoDB không sử dụng chỉ mục ghép cho truy vấn?

  2. Làm cách nào để sử dụng Trình điều khiển MongoDB với khung API C # ASP.NET Core?

  3. trong nodejs, cách dừng vòng lặp FOR cho đến khi cuộc gọi mongodb trả về

  4. Điền đối tượng vào một mảng

  5. Làm cách nào để kết nối với mongodb bằng express mà không cần mongoose?