sql >> Database >  >> NoSQL >> MongoDB

Retourneer laatste record van subdocument in Mongodb

Query's in MongoDB retourneren geen subdocumenten (of, zoals in uw geval, subdocumenten van subdocumenten). Ze matchen en retourneren de documenten in de collectie. De vorm van de documenten kan een beetje worden gewijzigd door projectie, maar het is beperkt. Als u de nieuwste tag vaak wilt vinden, wilt u waarschijnlijk dat uw documenten tags vertegenwoordigen. Het hebben van een array in een array is over het algemeen ook een slecht idee in MongoDB.

Als dit een ongebruikelijke bewerking is en niet bijzonder snel hoeft te zijn, kunt u een aggregatie gebruiken:

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. Zijn er tools om de indexgrootte in MongoDB te schatten?

  2. Socket.IO schalen naar meerdere Node.js-processen met behulp van cluster

  3. rmongodb:$or gebruiken in query

  4. Lua-script voor Redis dat de waarden van sleutels optelt