sql >> Databasteknik >  >> NoSQL >> MongoDB

Returnera senaste posten från underdokument i Mongodb

Frågor i MongoDB returnerar inte underdokument (eller, som i ditt fall, underdokument till underdokument). De matchar och returnerar dokumenten i samlingen. Dokumentens form kan ändras lite genom projektion, men det är begränsat. Om du vill hitta den senaste taggen ofta, vill du förmodligen att dina dokument ska representera taggar. Att ha en array i en array är i allmänhet en dålig idé i MongoDB också.

Om detta är en ovanlig operation, och en som inte behöver vara särskilt snabb, kan du använda en aggregering:

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. Hur man hittar med id i golang och mongodb

  2. Mongo-fråga på flera fält av underdokument

  3. Kan jag skapa en databas med rubyklasser?

  4. Framträdande egenskaper hos MapReduce – Vikten av MapReduce