web-dev-qa-db-fra.com

Projeter le premier élément d'un tableau dans un nouveau champ (agrégation MongoDB)

J'utilise l'agrégation Mongoose (MongoDB version 3.2).

J'ai un champ users qui est un tableau. Je veux $project premier élément de ce tableau dans un nouveau champ user.

J'ai essayé

  { $project: {
    user: '$users[0]',
    otherField: 1
  }},

  { $project: {
    user: '$users.0',
    otherField: 1
  }},

  { $project: {
    user: { $first: '$users'},
    otherField: 1
  }},

Mais ni ne fonctionne.

Comment puis-je le faire correctement? Merci

24
Hongbo Miao

Vous pouvez utiliser arrayElemAt :

{ $project: {
    user: { $arrayElemAt: [ "$users", 0 ] },
    otherField: 1
}},
68
Alex Blex