【发布时间】:2013-10-30 14:15:20
【问题描述】:
我正在使用 Node/Express/MongoDB/Mongoskin 构建一个应用程序。
我的数据库中有一个名为“clients”的集合,其中包含有关客户帐户信息的文档。每个客户文档都包含一个包含发票对象的数组,如下所示:
doc.invoices = [
{year: 2012,
quarter: 1,
daily: 912.00,
sms: 42.00,
paid: true},
{year: 2012,
quarter: 2,
daily: 913.00,
sms: 55.00,
paid: true},
{year: 2012,
quarter: 3,
daily: 876.00,
sms: 82.00,
paid: true},
{year: 2012,
quarter: 4,
daily: 903.00,
sms: 93.00,
paid: false},
{year: 2013,
quarter: 1,
daily: 915.00,
sms: 67.00,
paid: true},
{year: 2013,
quarter: 2,
daily: 920.00,
sms: 35.00,
paid: true},
{year: 2013,
quarter: 3,
daily: 880.00,
sms: 92.00,
paid: true},
{year: 2013,
quarter: 4,
daily: 900.00,
sms: 85.00,
paid: false}
]
问题:假设我想查询此集合中的所有文档,例如在显示所有客户端的超级管理员视图中,但我想将从发票数组返回的信息限制为对象"year" 等于某个值,例如 2013,当前年份。
我想投影是我需要的,但问题是投影只返回它找到的第一个结果......
【问题讨论】:
-
看看使用
aggregate而不是find和$unwind运算符。 -
您的查询是什么样的?
标签: node.js mongodb express mongoskin