Các truy vấn trong MongoDB không trả lại các tài liệu con (hoặc, như trong trường hợp của bạn, các tài liệu con của các tài liệu con). Họ khớp và trả lại các tài liệu trong bộ sưu tập. Hình dạng của tài liệu có thể được thay đổi một chút bằng phép chiếu, nhưng nó bị hạn chế. Nếu bạn muốn thường xuyên tìm thấy thẻ mới nhất, bạn có thể muốn làm cho tài liệu của mình đại diện cho các thẻ. Có một mảng trong một mảng nói chung cũng là một ý tưởng tồi trong MongoDB.
Nếu đây là một thao tác không phổ biến và một thao tác không cần quá nhanh, bạn có thể sử dụng tập hợp:
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" } } }
])