# @forlagshuset/nestjs-mongoose-paginate 中文文档

规范地址：https://npmcn.com/package/%40forlagshuset/nestjs-mongoose-paginate/

版本：2\.2\.5
npm 元数据更新时间：2026-10-30T08:06:07.759Z
中文译文更新时间：2026-11-15T08:02:57.134Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40forlagshuset/nestjs-mongoose-paginate
原文对照：https://npmcn.com/package/%40forlagshuset/nestjs-mongoose-paginate/?lang=original
项目主页：https://github.com/fagbokforlaget/nestjs-mongoose-paginate#readme
源码仓库：https://github.com/fagbokforlaget/nestjs-mongoose-paginate

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：95.2 kB，78 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：8 个
- 首次发布：2021-05-31T11:08:14.513Z
- 最新版本发布：2026-10-30T08:06:07.562Z
- 近 30 天下载量：3060（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：28（近 12 个月 6 个）

## 中文简介

使用 mongoose orm 对巢穴进行平滑、过滤和排序

## 安装

```sh
npm install @forlagshuset/nestjs-mongoose-paginate
```

也可以使用：`pnpm add @forlagshuset/nestjs-mongoose-paginate`、`yarn add @forlagshuset/nestjs-mongoose-paginate`、`bun add @forlagshuset/nestjs-mongoose-paginate`

## README

# 巢-多糖-贴花

使用 mongoose orm 的 paging, 过滤和排序 lib 用于 nockjs v8( 对于 v7 请使用 < v1.1)

# 使用量

### 曝光属性

创建类以保存关于可过滤和可排序属性的信息 你必须要 `@Expose` 属性。 默认情况下,它们中没有任何一个是可过滤的或可分类的. 您应该明确设置此参数 . 如果您想要披露一些名称不同的属性, 您需要指定一个 `name` 选项.

```typescript
import {
  CollectionProperties,
  Expose
} from '@forlagshuset/nestjs-mongoose-paginate';

export class MyCollectionProperties extends CollectionProperties {
  @Expose({ name: 'createdAt', sortable: true })
  readonly created_at: 'desc' | 'asc';

  @Expose({ sortable: true, default: true, filterable: true })
  readonly userName: 'desc' | 'asc';

  readonly unsortable: string;
}
```

### 验证管道

```typescript
import {
  CollectionDto,
  ValidationPipe,
  CollectionResponse
} from '@forlagshuset/nestjs-mongoose-paginate';

@Controller()
export class AppController {
  @Get('list')
  async filter(
    @Query(new ValidationPipe(MyCollectionProperties))
    collectionDto: CollectionDto,
  ): Promise<CollectionResponse<MyDocument>> {
    return await this.service.list(collectionDto);
  }
}
```

### 文档收集器的使用

```typescript
import { Model } from 'mongoose';
import { InjectModel } from '@nestjs/mongoose';
import {
  CollectionDto,
  DocumentCollector,
  CollectionResponse
} from '@forlagshuset/nestjs-mongoose-paginate';

@Injectable()
export class AppService {
  constructor(
    @InjectModel('MyModel') private readonly model: Model<MyDocument>,
  )

  async list(
      collectionDto: CollectionDto,
  ): Promise<CollectionResponse<MyDocument>> {
    const collector = new DocumentCollector<MyDocument>(this.model);
    return collector.find(collectionDto);
  }
}
```

# 查询

您现在可以发出请求, 例如:

```
http://localhost:3000/list?filter={"userName": {"$regex": "^test"}}&sort=-createdAt&page=0&limit=100
```

您需要运行参数通过 `urlencode` 来正确解析查询。 所以过滤器部分看起来更像

`%7B%22userName%22%3A%20%7B%22%24regex%22%3A%20%22%5Etest%22%7D%7D`

### 排序

您可以通过提供用分号分隔的列表来指定一个以上的字段进行排序: `createdAt;userName`。 。 。 . 要使用 DESC 排序顺序 : `-createdAt`。 。 。 .

### 过滤器

梦雁查询语言的子集被支持. 目前仅支持这些运算符:

`'$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne', '$nin', '$and', '$not', '$nor', '$or', '$regex'`

## 常见问题

### @forlagshuset/nestjs-mongoose-paginate 是什么？

使用 mongoose orm 对巢穴进行平滑、过滤和排序

### 如何安装 @forlagshuset/nestjs-mongoose-paginate？

在项目目录运行 npm install @forlagshuset/nestjs-mongoose-paginate，或使用 pnpm add / yarn add / bun add。

### @forlagshuset/nestjs-mongoose-paginate 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @forlagshuset/nestjs-mongoose-paginate 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @forlagshuset/nestjs-mongoose-paginate 可以商用吗？

@forlagshuset/nestjs-mongoose-paginate 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @forlagshuset/nestjs-mongoose-paginate 的下载量有多少？

根据 npm 官方下载统计，@forlagshuset/nestjs-mongoose-paginate 在 2026/10/16 – 2026/11/14 这 30 天内被下载 3,060 次，日均约 102 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @forlagshuset/nestjs-mongoose-paginate 还在维护吗？

最新版本 2\.2\.5 发布于 2026/10/30（16 天前）；至今共发布 28 个版本，其中过去 12 个月发布了 6 个；首次发布于 2021/05/31。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

