MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Opérateur $arrayElemAt en agrégation avec Mongo <3.2

Vous devrez $unwind , $group et utilisez le $first et $last opérateurs comme celui-ci :

db.collection.aggregate([
    { "$unwind": "$favorites" },
    { "$group": { 
        "_id": "$_id",
        "first": { "$first": "$favorites" },
        "last": { "$last": "$favorites" }
    }}
])

Ou deux requêtes différentes si $unwind est cher

var first = db.collection.find({}, {"favorites": { $slice: 1}})
var last = db.collection.find({}, {"favorites": { $slice: -1}})