MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

как да сравнявате две полета в документ в конвейерно агрегиране (mongoDB)

Проблемът не е в оператора за сравнение, а в типа на стойността, която сравнявате. Трябва да промените типовете променливи на Числа. Променете съвпадението си на 1, -1 или 0 въз основа на вашето сравнение.

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

Можете да използвате $expr във версия 3.6.

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

Или

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Поддръжка за множество потребителски типове от Passport-local mongoose node.js

  2. mongodb - получава най-високата стойност на сума, групирана по поле

  3. Mongoose:Как да попълвам дълбока популация от 2 нива, без да попълвам полета от първо ниво? в mongodb

  4. Проектиране на масив от обекти към ключова стойност

  5. Как да украсите експортираните MongoDB документи в mongoexport