Ich versuche eine Aggregation mit MongoDB zu machen. Aber das funktioniert nur in Mongo Shell. Wenn ich mit Mungo versuche, gibt die Aggregation ein leeres Array zurück.Warum funktioniert diese Aggregation nicht mit Mongoose?
Diese Abfrage funktioniert auf MongoDB Shell
db.models.aggregate([
{ $match: {_id: modelId)} },
{ $project: {years: { $setUnion: [ "$modelYears.year"]}} }
])
aber das gleiche in Mungo ein leeres Array zurück
Model.aggregate([
{$match: {_id: modelId}},
{$project: {years: { $setUnion: [ "$modelYears.year"]}}}
], (err, model) => {
console.log('model', model);
})
Die Dokumentstruktur ist:
{
"_id" : ObjectId("string"),
"name" : "Jhon",
"modelYears" : [
{
"year" : 1989,
"spec" : []
},
{
"year" : 1988,
"spec" : []
},
{
"year" : 1987,
"spec" : []
}
],
}
Funktioniert nicht auch. Ich hatte dies zu tun: 'Model.findOne ({_ id: ModelID}) .select ({ 'modelYears.year': 1}) .exec ((err, Modell) => { var Jahre = _ .pluck (model.modelYears, 'year'); res.status (200) .json (years) }) ' –
ah du hast Recht. Aktualisiert. Ich habe es mit Aggregation vermischt. – Veeram
Diese Abfrage gibt ein Array von Jahren wie dem folgenden zurück: [{Jahr: 2014}, {Jahr: 2015}] ' , aber ich brauche etwas wie dieses:' [2014, 2015] '. Meine Abhilfe verwendete '_.pluck (model.modelYears, 'year');' –