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

$projekt w agregacji wyszukiwania

Głównym wyzwaniem jest to, że chcesz wszystkie pola z głównego dokumentu (ponieważ nie znasz ich wszystkich) plus tylko 2 z listy.

To powinno wystarczyć:

{
  $project: {
    "_id": 0,
    "document": "$$CURRENT",
    "list._id": "$$CURRENT.list._id",
    "list.name": "$$CURRENT.list.name"
  }
}, {
  $project: {
    "document.list": 0
  }
}, {
  $addFields: {
    "document.list._id": "$$CURRENT.list._id",
    "document.list.name": "$$CURRENT.list.name"
  }
}, {
  $replaceRoot: {
    newRoot: "$document"
  }
}

Przechodzi przez kilka etapów, ale wykonuje swoją pracę :). Wymagałoby to bieżącego dokumentu i tylko żądanych pól listy. Następnie usunie z bieżącego dokumentu swoją listę. Następnie dodałby do tego samego dokumentu listę (ponieważ ten zawiera określone pola, które chcemy). Następnie doda te pola do dokumentu, a na końcu zamieni katalog główny na ten dokument.

Zobacz, jak działa .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Boot + zapytanie o identyfikator MongoDB

  2. Wstępnie skompilowane zasoby Heroku nie powiodły się

  3. node-mongodb-native MongoClient nieoczekiwanie zamyka połączenia

  4. MongoDB $atanh

  5. Jak uzyskać wartość z obiektu zagnieżdżonego w manguście?