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 返回类型

使用多个装饰器将 Type-GraphQL 与 Typegoose 相结合

如何根据 typegoose 属性中的某些条件返回默认值?

GraphQLError:类型查询必须定义一个或多个字段。使用类型鹅