MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

jak porównać dwa pola w dokumencie w agregacji potoku (mongoDB)

Problem nie dotyczy operatora porównania, jest to typ wartości, którą porównujesz. Powinieneś zmienić typy zmiennych na Liczby. Zmień dopasowanie na 1, -1 lub 0 na podstawie porównania.

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

Możesz użyć $expr w wersji 3.6.

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

Lub

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor przy użyciu Azure MongoDB

  2. Can kafka connect - źródło mongo działa jako klaster (max.tasks> 1)

  3. Nowy sposób zarządzania bazami danych Open Source

  4. jak przekonwertować ciąg na wartości liczbowe w mongodb

  5. Krótki, przyjazny dla użytkownika identyfikator dla mongo