我正在尝试使用mongoose
创建一个数据库和一个集合。我的代码是:
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/testdb');
var Schema = mongoose.Schema;
var UserInfo = new Schema({
username : String,
password : String
});
mongoose.model('UserInfo', UserInfo);
var user = db.model('UserInfo');
var admin = new user();
admin.username = "sss";
admin.password = "ee";
admin.save();
当我运行这段代码时,mongoose创建了名为UserInfo
而不是userinfo
的集合。如何在mongoose中强制使用集合名?
9条答案
按热度按时间4uqofj5v1#
这个应该可以了
请参阅Mongoose文档中的此链接以获取更多信息。
jc3wubiy2#
如果您使用的是mongoose 2.0.0,请将collectionName作为第三个参数传递
vcirk6k63#
Mongoose默认会在集合名称中添加“% s”。如果你想避免这种情况,只需将集合的名称作为第三个参数传递:
txu3uszq4#
mongoose.model的API结构如下:
mongoose所做的是,当没有集合参数被传递时,Mongoose通过将模型名称变为复数来生成一个集合名称。如果您不喜欢这种行为,可以传递一个集合名称或设置schemas集合名称选项。
范例:
或
或
rlcwz9us5#
您需要在架构中设置集合名称。
jecbmhm36#
Mongoose 维修员在这里。我们建议使用
mongoose.model('UserInfo', UserInfo, 'UserInfo');
,mongoose.model()
的第三个参数是集合名称。这是相关文件cbjzeqam7#
在
module.exports = mongoose.model('name', schema, 'collection')
上传递第三个参数会覆盖基于模型名称的自动集合名称,这已经得到了回答。但还有两种方法per mongoose.model doco link:https://mongoosejs.com/docs/api.html#mongoose_Mongoose-model
有3种方法可以手动输入集合名称:
whhtz7ly8#
答案:
更好的语法解释:
参数说明:
7fyelxc59#
您的型号名称:userInfo.js
在Express路由文件或app.js中
然后在userInfo.js中