私が持っていると仮定します:
> db.users.save({name: 'John', orders:[{price: 10, date: new Date('Feb 2, 2013')}, {price: 5, date: new Date('Feb 14, 2013')}]});
> db.users.save({name: 'Tim', orders:[{price: 15, date: new Date('Jan 27, 2013')}, {price: 5, date: new Date('Feb 8, 2013')}]});
「2013 年 2 月に少なくとも 2 件の注文があるすべてのユーザー」を見つけるためのベスト プラクティスは何ですか?
$where 演算子を使用して、作業を行う JS 関数を作成できると思いますが、アプリのパフォーマンス キラーになるのではないかと心配しています。
また、ユーザーの新しいフィールドを計算することもできます: Feb2013OrdersCnt 注文が追加されるたびに更新されますが、クエリの日付範囲を変更したいと思います (2013-02-01 と 2013-02-09 の間の 2 件以上の注文)例えば)。これを行う効率的な方法はありますか?