0
我嘗試使用MongoDB進行聚合。但這隻適用於mongo shell。當我用貓鼬嘗試時,聚合返回一個空數組。爲什麼這個聚合不適用於Mongoose?
此查詢的工作有關MongoDB殼牌
db.models.aggregate([
{ $match: {_id: modelId)} },
{ $project: {years: { $setUnion: [ "$modelYears.year"]}} }
])
但同樣在貓鼬返回一個空數組
Model.aggregate([
{$match: {_id: modelId}},
{$project: {years: { $setUnion: [ "$modelYears.year"]}}}
], (err, model) => {
console.log('model', model);
})
文檔結構是:
{
"_id" : ObjectId("string"),
"name" : "Jhon",
"modelYears" : [
{
"year" : 1989,
"spec" : []
},
{
"year" : 1988,
"spec" : []
},
{
"year" : 1987,
"spec" : []
}
],
}
不起作用。我不得不這樣做: 'Model.findOne({_ id:modelId}) .select({'modelYears.year':1}) .exec((err,model)=> {var_type = .pluck(model.modelYears,'year'); res.status(200).json(年) })' –
啊你是對的。更新。我把它與聚合混合在一起。 – Veeram
這個查詢返回一個像這樣''[{year:2014},{year:2015}]' 年的數組,但我需要這樣的:'[2014,2015]''。 我的解決方法是使用'_.pluck(model.modelYears,'year');' –