【发布时间】:2020-02-18 15:26:07
【问题描述】:
我有一个 mongodb 架构,其中文档按照以下结构,
{"_id":"5e4aaadefrbff2150c42ed5b",
"data":[{"time":"15:24:31","amount":"34"},{"time":"15:24:33","amount":"38"},,{"time":"15:24:35","amount":"95"}],
"code":"S04",
"rollnumber":4,
"intime":"2020-02-16T12:24:21.921Z"}
在我的 node.js 代码中,我以这种方式获取数据以找到最后一个数组值,
mycollection.find({ code: "S04", rollnumber: 4 }, { "_id": 0, code: 0, rollnumber: 0, intime: 0, data: { $slice: -1 } }, (err, result) => {
if (err) { console.log('err', err); }
console.log(result)
res.json(result);
});
问题是,我只想要数组结果,因此放置所有其他键:0。当我只输入data:1, data: { $slice: -1 } 时它不起作用
它在 put data:1 没有切片运算符时起作用。在生产中,列表会很大,所以我不能将所有带有 :0 的键放在查询中。请建议如何将 $slice 与 :1 一起放置以仅显示过滤后的数组。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework