sql >> Databáze >  >> NoSQL >> MongoDB

Vraťte nejnovější záznam z vnořeného dokumentu v Mongodb

Dotazy v MongoDB nevracejí vnořené dokumenty (nebo jako ve vašem případě vnořené dokumenty vnořených dokumentů). Dokumenty ve sbírce spárují a vrátí. Tvar dokumentů lze projekcí trochu změnit, ale je to omezené. Pokud chcete běžně najít nejnovější tag, pravděpodobně budete chtít, aby vaše dokumenty představovaly tagy. Mít pole v poli je obecně špatný nápad i v MongoDB.

Pokud se jedná o neobvyklou operaci, která nemusí být obzvláště rychlá, můžete použít agregaci:

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. NotUniqueError:Pokusil se uložit duplicitní jedinečné klíče

  2. Mongodb rozbalte vnořené dokumenty

  3. Přímý způsob generování kódu pomocí Mongoose a Node.js a podtržení?

  4. Správa připojení k redis z Pythonu