乐闻世界logo
搜索文章和话题

How to get collection name from a Mongoose model object

4 个月前提问
3 个月前修改
浏览次数24

1个答案

1

在Mongoose中,每个模型对象都与一个集合名称相关联,这个名称通常是由模型名称的复数形式决定的。要从模型对象中获取集合名称,您可以访问模型对象的 collection 属性,然后通过 collection.name 获取实际的集合名称。这是一个简单的例子:

javascript
const mongoose = require('mongoose'); // 定义模型 const Schema = mongoose.Schema; const someModelSchema = new Schema({ // 模型定义 }); const SomeModel = mongoose.model('SomeModel', someModelSchema); // 获取集合名称 const collectionName = SomeModel.collection.name; console.log(collectionName); // 输出集合名称,通常是模型名称的复数,例如 "somemodels"

在这个例子中,SomeModel 是根据 someModelSchema 创建的模型。要获取该模型对应的集合名称,我们访问了 SomeModel.collection.name,它会返回实际存储在MongoDB中的集合名称。

请注意,默认情况下,Mongoose会将模型的名称转换成小写并添加复数后缀以形成集合名称。如果你想要自定义集合名称,可以在定义模型时作为第三个参数传入:

javascript
const SomeModel = mongoose.model('SomeModel', someModelSchema, 'custom_collection_name');

在这种情况下,集合名称将会是 'custom_collection_name' 而不是基于 'SomeModel' 自动生成的名称。

2024年6月29日 12:07 回复

你的答案