【发布时间】:2017-03-01 13:02:44
【问题描述】:
我在节点项目中使用猫鼬,我有以下查询:
var query = Model.aggregate(
{ $match: { id: id } },
{ $sort: { created: -1 } },
{
$project: {
name: true,
number: true,
created: true,
status: true,
time: true,
array_data: { $slice: ['$array_data', 5] }
}
}
)
我认为 slice 会根据 array_data 字段中有多少记录将我的整个记录限制为 5,但它只限制了返回的 array_data 元素的数量。
我希望做的是:
假设我的模型中的记录 1 在 array_data 中有 10 个元素 我的模型中的记录 2 在 array_data 中有 15 个元素。
我希望能够切片或使用其他一些函数,因此当我使用 20 的“限制”查询我的模型时,它会返回第一个集合及其在 array_data 中的所有 10 个元素以及第二个集合及其前 10 个array_data 中的记录等于 20 的“限制”。
这对 Mongo 有可能吗?
【问题讨论】:
标签: javascript node.js mongodb mongoose aggregation-framework