1
私は3つの入力パラメータを指定できるAPIを構築しています: /trips/:id/:from/:to
などです。私が特に興味を持っているパラメータはfrom
とto
です。私のMongoDBのコレクションでは、私は次のような構造を有する:reqパラメータに基づいてダイナミックに集約フィールドを追加します
id 2014_08 2014_09 ...
1 [...] [...]
2 [...] [...]
は今、私は以下の集約に達成したいものを、from
とto
に呼び出しから要求された内容に基づいて、それは返すべきであるということです対応するフィールド。例えば
:GET /trips/1/2014_08/2014_09
は返す必要があります:
id: 1,
2014_08: {
...
},
2014_09: {
...
}
をマイルートは次のようになります。
app.get('/trips/:id/:from/:to', function(req,res) {
var aggr = Trip.aggregate([
{ "$match": {
"_id": Number(req.params.id)
}
},{
"$project": {
"_id" : 1,
"trips_201408": "$2014_08",
//How to append more to this, according to from/to?
}
}
])
aggr.options = { allowDiskUse: true };
aggr.exec(function(err, trips){
if(err)
res.send(err);
res.json(trips);
});
});
だから私の質問は、動的の入力に対応するプロジェクトのステージを作成するためのどのような良い習慣であり、どこから?
ニート、ありがとう!このようにすると、照らし込みをより簡単に行うことができます。 2ヶ月を超える連続した月が指定されている場合は、今すぐループが必要です。 – ffritz
@ffritzそれだけで十分です。追加されました。 –
ああ、それを期待していませんでしたが、自分の解決策に取り組んでいた。これはすばらしく見える!どうもありがとう。 – ffritz