sql >> Base de Datos >  >> NoSQL >> MongoDB

Devuelve el último registro del subdocumento en Mongodb

Las consultas en MongoDB no devuelven subdocumentos (o, como en su caso, subdocumentos de subdocumentos). Coinciden y devuelven los documentos de la colección. La forma de los documentos se puede cambiar un poco por proyección, pero es limitada. Si desea encontrar la última etiqueta comúnmente, probablemente desee que sus documentos representen etiquetas. Tener una matriz en una matriz generalmente también es una mala idea en MongoDB.

Si esta es una operación poco común y que no necesita ser particularmente rápida, puede usar una agregación:

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" } } }
])