sql >> Database teknologi >  >> NoSQL >> MongoDB

Returner seneste post fra underdokument i Mongodb

Forespørgsler i MongoDB returnerer ikke underdokumenter (eller, som i dit tilfælde, underdokumenter til underdokumenter). De matcher og returnerer dokumenterne i samlingen. Dokumenternes form kan ændres en smule ved projektion, men det er begrænset. Hvis du ofte vil finde det seneste tag, vil du sandsynligvis få dine dokumenter til at repræsentere tags. At have et array i et array er generelt også en dårlig idé i MongoDB.

Hvis dette er en ualmindelig operation, og en der ikke behøver at være særlig hurtig, kan du bruge 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. MongoDB BSON-codec bruges ikke under kodning af objekt

  2. $ projektion i mongoDB findOneAndUpdate()

  3. Python + MongoDB - Cursor iteration for langsom

  4. Nogen måde at få det modificerede IDS fra mongodbs bulkoperationer ved hjælp af mongoose?