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

MongoDB obtient le premier et le dernier document dans une requête agrégée

Eh bien, vous avez besoin de $group mais vous pouvez simplement utiliser une constante (par exemple null , voir la documentation ) pour son id de sorte qu'il en résulte un seul groupe. $$ROOT fait alors référence au document lui-même que vous pouvez utiliser avec $first et $last comme ça

$group: {
  _id: null,
  first: { $first: "$$ROOT" },
  last: { $last: "$$ROOT" }
}

Bien sûr, vous pouvez introduire d'autres $project étapes pour façonner ces données dans un tableau (comme vous l'avez mentionné, vous voulez une liste), etc.

En remarque, vous pouvez introduire un $sort étape pour s'assurer que $first et $last avoir un sens propre.