Considere el siguiente documento en mongoDB:
{words:['a','b','c','d','e','f']} Sé que es fácil obtener un solo elemento o un rango en mongodb usando $arrayElemAt o $slice .
Pero, ¿cómo puedo obtener múltiples elementos dando una lista de índices?
Por ejemplo, si tengo una lista de índices:
[0,2,5]
el resultado esperado es:
{words:['a','c','f']}Puede pasar su matriz como parámetro in $mapa y luego usar el operador $arrayElemAt :
db.collection.aggregate([ { $project: { words: { $map: { input: [0,2,5], as: "index", in: { $arrayElemAt: [ "$words", "$$index" ] } } } } } ])