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

Mongodb if to warunek pod filtrem jak zrobić

Po dyskusji na czacie wydaje się, że ogólny problem polegał na tym, jak wybrać dokumenty z głównej kolekcji na podstawie 2 kryteriów powiązanych dokumentów historycznych:

db.main.aggregate([
  {$lookup: {
      from: "history",
      localField: "history_id",
      foreignField: "history_id",
      as: "History"
  }},
  {$match: {
      $expr: {
        $eq: [
          false,
          {$reduce: {
              input: "$History",
              initialValue: false,
              in: {
                $or: [
                  "$$value",
                  {$and: [
                      {$eq: [
                          "$$this.user_id",
                          ObjectId("5e4a8d2d3952132a08ae5764")
                      ]},
                      {$gte: [
                          "$$this.date",
                          "$date"
                      ]}
                  ]}
                ]
              }
          }}
        ]
      }
  }}
])

Plac zabaw




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zapytanie Mongo w Pythonie, jeśli używam zmiennej jako wartości

  2. Kompilacja sterownika MongoDB C++ na Cygwin

  3. Jak używać $query, $hint lub $explain z Javy

  4. Uruchomienie PHP Nie można załadować biblioteki dynamicznej php_mongo.dll

  5. MongoDB + Python - bardzo wolne proste zapytanie