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

Mongo $lookup filtr używający zagnieżdżonego zapytania

$match wewnątrz $lookup potok nie ma związku z jobCollection dokumenty. Filtruje tylko dokumenty dla tasks kolekcja. Musisz więc użyć jeszcze jednego $match etap po $lookup aby odfiltrować ROOT(jobCollection ) dokumenty.

jobCollection.aggregate([
  { "$match": { "$text": { "$search": "1234" }}},
  { "$lookup": {
    "from": "task",
    "let": { "job_id": "$_id" },
    "pipeline": [
      { "$match": {
        "$expr": {
          "$and": [
            { "$eq": ["$job", "$$job_id"] },
            { "$eq": ["$status", "FAILED"] }
          ]
        }
      }}
    ],
    "as": "tasks"
  }},
  { "$match": { "tasks": { "$ne": [] }}},
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. jak wyświetlić dane z dokumentu do index.phtml w zf2?

  2. Jak pobrać następny i poprzedni element bieżącego za pomocą Mongoose?

  3. Spring Data REST :niestandardowe zapytanie dla repozytorium MongoDB

  4. Jak wstawić dokument MongoDB ze znacznikiem czasu z serwera bazy danych?

  5. Używanie agregacji Mongo do obliczania sumy wartości