Mongoose / typegoose 根据开始和结束索引获取数组
Posted
技术标签:
【中文标题】Mongoose / typegoose 根据开始和结束索引获取数组【英文标题】:Mongoose / typegoose get array based on start and end index 【发布时间】:2020-11-19 16:08:39 【问题描述】:有没有办法在 mongo db 级别获取数组切片?我正在尝试做类似以下的事情:Model.find(filter: option, startindex, endindex)。目前我发现的唯一选择是执行以下操作:
let result = await Model.find(filter: option);
returh result.slice(startIndex, endIndex)
不幸的是,这不起作用,因为我每次都必须提取完整记录。如果我能在 mongo 级别做到这一点,那就太好了。感谢您的帮助!
更新: 经过进一步研究,我找到了一个可能的解决方案:
Model.find(filter: option).skip(skip).limit(limit);
似乎使用这种方法我可以在 mongo db 中对文档数组进行切片。如果您有任何其他想法,请告诉我。谢谢!
【问题讨论】:
【参考方案1】:据我所知,没有办法从文档中获取数组的切片,但有 select
PS:skip
跳过查询找到的第一个文档,limit
限制查询返回的数量
【讨论】:
感谢您的回复。如果我错了,请纠正我,选择将允许我专门告诉 mongo 给我一个带有特定字段的对象吗?此外,skip 和 limit 是否与切片相同?我在想,如果我说跳过 2,这意味着我在集合的位置 2,类似于我说从集合 [2] 开始,如果我说限制 10 类似于说在集合 [12] 结束? @paul590 是的,只是它作用于 filter 而不是整个 collection以上是关于Mongoose / typegoose 根据开始和结束索引获取数组的主要内容,如果未能解决你的问题,请参考以下文章
用于 rest api 的 typegoose/mongoose 日期格式
如何提取 typescript mongoose/typegoose 模式
Typescript typegoose getModelForClass 返回类型