MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb aggregation framework – Feld des ersten Dokuments des verschachtelten Arrays abrufen

Der einfachste Weg, Ihr Ergebnis zu erzielen, ist die Verwendung einer normalen Suchabfrage und des $slice Betreiber:

db.collection.find( {_id: "User1"}, {"likes.sublikes": {$slice: 1}} )

Das Aggregationsframework (wie bei MongoDB 2.4.1) unterstützt $slice nicht oder Array-Indizes (Funktionsanfragen abstimmen/beobachten:SERVER-6074 ). und SERVER-4589 ).

Sie könnten dies im Aggregationsframework mit $unwind tun , $group und das $first Operator, zB:

db.collection.aggregate([
    { $match: {
         _id : "User1"
    }},
    { $unwind: "$likes.sublikes" },
    { $group: {
        _id: "$_id",
        like: { $first: "$likes.sublikes" }
    }},
    { $project: {
        _id: 0,
        "UserID": "$_id",
        "WebsiteName": "$like.WebsiteName"
    }}
])

Das normale $slice sollte die leistungsstärkste Option sein.