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

Mongoose自动生成复数集合名的逻辑及查询方法咨询

Mongoose集合自动命名逻辑与查询方法

一、自动命名的底层逻辑

Mongoose默认会对模型名称做两步转换:

  1. 将你传入mongoose.model()的首字母大写单数名称转为全小写
  2. 再将其处理为英语复数形式,作为最终的集合名称

比如你定义的Movie模型,就会被转成movies;如果是Person模型,会自动转成people(处理不规则复数),Child则会变成children。

要是不想用这套默认规则,定义Schema时可以手动指定集合名,写法如下:

const movieSchema = new mongoose.Schema(
  { /* 你的字段定义 */ },
  { collection: 'my_custom_movies' } // 手动指定集合名
);
const Movie = mongoose.model('Movie', movieSchema);

这种情况下,集合名就是你指定的my_custom_movies,不会走自动复数化流程。

二、查询模型对应的集合名称

有三种实用方法:

  • 直接通过模型的collection.name属性获取(最准确,覆盖手动指定的情况):
    console.log(Movie.collection.name); // 输出对应的集合名,比如'movies'
    
  • 在MongoDB终端里执行show collections命令,列出当前库所有集合,结合模型的业务含义对应查找
  • 若没手动指定集合名,也可以根据Mongoose的复数规则推断,但不如第一种方法可靠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:32:09