【发布时间】:2021-12-17 10:24:42
【问题描述】:
我想只检索文档中数组的第一个和最后一个元素,方法是使用“find”函数,而不使用“aggregate”。
Here is a Mongo Playground Link
考虑一个文档
{
_id:"1",
messages:[
{
"text":"First item",
},
{
"text":"Middle item",
},
{
"text":"Last item",
},
],
}
到目前为止,我只能检索第一个或最后一个,例如,要获取最后一个项目,我正在做:
messages: {
$slice: ["$messages", -1], //Get the last element
},
如何同时获取第一个(第 0 个索引)和最后一个(第 n 个索引)?
注意:我事先没有关于数组长度的任何信息。
注2:我不喜欢使用“聚合”的原因是因为有更多的过滤器、选择、限制和其他各种查询属性正在通过猫鼬的find()、limit()等函数处理,我以通用方式使用它来定义我的包装器。
【问题讨论】:
-
我想不出没有聚合的方法...您的其他过滤器是什么?也许您可以将它们全部迁移到聚合中。
标签: mongodb mongoose mongodb-query