我无法理解为什么我可以使用它来访问我的模型:
module.exports = function(mongoose) {
var collection = 'news';
var NewsSchema = new mongoose.Schema({
type: String,
content: String,
img: String,
date: {type: Date, default: Date.now }
});
return mongoose.model(collection, NewsSchema);
}
但我必须指定名称集才能访问此模型:
module.exports = function(mongoose) {
var collection = 'console';
var ConsoleSchema = new mongoose.Schema({
value: String,
label: String
}, { collection: collection });
return mongoose.model(collection, ConsoleSchema);
}
我使用
访问我的数据models.news.find({});
models.collection.find({});
我不明白这些技巧......
由于
答案 0 :(得分:0)
这是因为Mongoose使用模型名称的低层复数版本作为基础集合的默认名称。
因此'news'
映射到'news'
(因为它已经是复数),但'console'
映射到'consoles'
,因此您需要显式设置集合名称使用架构上的collection
选项。
您还可以使用第三个参数将集合名称设置为mongoose.model
:
return mongoose.model(collection, ConsoleSchema, collection);