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

Zwróć ostatni rekord z poddokumentu w Mongodb

Zapytania w MongoDB nie zwracają poddokumentów (lub, jak w Twoim przypadku, poddokumentów poddokumentów). Dopasowują i zwracają dokumenty w kolekcji. Kształt dokumentów można nieco zmienić za pomocą projekcji, ale jest to ograniczone. Jeśli chcesz często znajdować najnowszy znacznik, prawdopodobnie chcesz, aby Twoje dokumenty reprezentowały znaczniki. Posiadanie tablicy w tablicy jest generalnie złym pomysłem również w MongoDB.

Jeśli jest to rzadka operacja i nie musi być szczególnie szybka, możesz użyć agregacji:

db.modules.aggregate([
    { "$unwind" : "$svn_branches" },
    { "$unwind" : "$svn_branches.tags" },
    { "$sort" : { "svn_branches.tags.updated_at" : -1 } },
    { "$group" : { "_id" : "$_id", "latest_tag" : { "$first" : "$svn_branches.tags" } } }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Utrzymuj i spłukuj - Doctrine i MongoDB

  2. tworzyć i aktualizować wiele dokumentów MongoDB w jednym połączeniu

  3. Ogranicz liczbę wartości w polu za pomocą MongoDB

  4. Mongodb TTL nie działa

  5. MongoDB $set nie aktualizuje rekordu