假设我有:
> 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 每次添加订单时都会更新,但我希望更改我的查询中的日期范围(> 2 个订单在 2013-02-01 和 2013-02-09 之间例如)。有没有有效的方法来做到这一点?