You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi v3默认数据库方法有哪些?如何访问Mongoose方法?

Strapi v3 访问模型Mongoose方法指南

问题原因解析

Strapi v3 自动生成的服务层(strapi.services.[model])仅封装了框架预设的方法(如find、create、update、delete等),不直接暴露Mongoose原生方法,这就是你调用findMany时报错的核心原因。

访问Mongoose原生方法的正确方式

要调用模型对应的所有Mongoose原生方法,需通过strapi.models.[model].model获取Mongoose模型实例,之后即可使用所有Mongoose支持的模型方法。

以你的article模型为例:

// 获取Mongoose模型实例
const ArticleMongooseModel = strapi.models.article.model;

// 调用Mongoose原生findMany方法
const targetArticles = await ArticleMongooseModel.findMany({
  offset: 10,
  limit: 10,
  where: {
    id: ctx.query.id
  }
});

也可以使用Mongoose链式查询语法:

const targetArticles = await ArticleMongooseModel.find({ _id: ctx.query.id })
  .skip(10)
  .limit(10);

Strapi服务层方法的正确用法

你能正常运行的strapi.services.article.find(ctx.query),使用的是Strapi封装后的查询方法,它的参数格式与Mongoose原生方法不同,支持_start(对应偏移量)、_limit、_where等参数,实现你需求的写法如下:

strapi.services.article.find({
  _start: 10,
  _limit: 10,
  id: ctx.query.id
});

文档参考说明

Strapi v3官方文档虽未单独罗列可访问的Mongoose方法,但只要通过上述方式获取到Mongoose模型实例,所有Mongoose官方文档中记载的模型方法均可直接调用。

内容的提问来源于stack exchange,提问作者user11092881

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:42:08