【发布时间】:2016-05-14 23:14:22
【问题描述】:
我对 MongoDB 和 Mongoose 很陌生,偶然发现了以下问题: 我有一个包含大约 600 个这种(缩短)格式的文档的集合:
{
_id: ObjectId(<Integer>),
sA: [
{
age: {
value: <Integer>
}
}
]
}
文档包含范围从 0 到大约 100 的年龄值,但并非所有值都被表示。 我想以
的形式输出一个单个Object{
labels: [<Integer>, <Integer>, ...],
data: [<Integer>, <Integer>, ...]
}
其中标签是包含所有文档的所有年龄值的数组。并且数据包含找到该年龄值的次数。
我的问题是:
- 由于我是数据库新手,MongoDB 甚至可以做到这一点吗?
-
如果是这样,是否也可以填补标签和数据数组内部的空白?可以说,输出如下所示:
{ labels: [0,1,2,6,9] data: [1,17,4,5,3] }
但我希望它看起来像这样:
{
labels: [0,1,2,3,4,5,6,7,8,9],
data: [1,17,4,0,0,0,5,0,0,3]
}
到目前为止,我无法使用聚合或 mapReduce 管道来归档这种格式。我必须分两步执行此操作吗?就像输出一个排序的数组,然后在服务器上使用 Javascript 函数来提取和填充数据和标签数组并在将对象发送回客户端之前填充空白?
提前谢谢你!!
【问题讨论】:
标签: javascript node.js mongodb mongoose