In Aggregation Framework Examples, c'è un primo & ultimo esempio:Posso ottenere il primo documento (non il campo) nella query aggregata MongoDB?
db.zipcodes.aggregate({ $group:
{ _id: { state: "$state", city: "$city" },
pop: { $sum: "$pop" } } },
{ $sort: { pop: 1 } },
{ $group:
{ _id : "$_id.state",
biggestCity: { $last: "$_id.city" },
biggestPop: { $last: "$pop" },
smallestCity: { $first: "$_id.city" },
smallestPop: { $first: "$pop" } } }
posso ottenere lo zipcodes documento completo con $first
?
Modificato:
Per chiarire, io uso CoffeeScript nella mia app espresso fare la seguente cosa, sembra stupido:
@aggregate(
{
$group :
_id : "$category"
cnt : { $sum : 1 }
id: {$first: "$_id"}
name: {$first: "$name"}
description: {$first: "$description"}
region: {$first: "$region"}
startedAt: {$first: "$startedAt"}
titleImage: {$first: "$titleImage"}
tags: {$first: "$tags"}
},
{$sort :{"createdAt" : -1}}
I campi (id, nome, ... tag) sono tutti campo dello schema del documento. Voglio solo sapere, c'è un modo per farlo in singolo $first
.
Che cosa stai cercando di ottenere esattamente? È ordinamento e $ prima/$ l'ultima volta si suppone di ottenere città della popolazione minima e massima? –
Grazie per la tua risposta, ho appena cambiato domanda per chiarire cosa voglio fare. – wuhaixing
non c'è un modo per farlo in questo momento - ho pensato che ci fosse un biglietto jira per questa funzionalità ma non riesco a trovarlo. –