mongoose介绍:
mongoose
是一个操作mongoDB
数据库的一个工具,可以通过npm
安装,mongoose
会在数据库真正链接之前就缓存所有命令,也就是说建立模型、执行查询时不用确认数据库链接是否成功,只要链接成功这些命令都会自动执行
链接
// 下面两种方法都可以
mongoose.connect(uri, options);
mongoose.createConnection(uri, options);
两种方法区别:
官方解释:当你需要操纵多个数据库时,且每个连接都具有不同的设置时,使用createConnection
createConnection
会直接返回链接对象,connect
使用链接对象需要通过mongoose.connection
options
参数有:
const options = {
useMongoClient: true,
autoIndex: false, // Don't build indexes
reconnectTries: Number.MAX_VALUE, // Never stop trying to reconnect
reconnectInterval: 500, // Reconnect every 500ms
poolSize: 10, // Maintain up to 10 socket connections
// If not connected, return errors immediately rather than waiting for reconnect
bufferMaxEntries: 0
};
通过链接对象设置一些监听函数:
mongoose.connection.on('connected', () => {
console.log('链接成功');
});
定义schema
:
const userSchema = mongoose.Schema({
name: { type: String }
});
/** 除了type,还有定义一些其他的一些,比较常用的有默认值,是否必须 */
const userSchema2 = mongoose.Schema({
name: {
type: String,
required: true,
default: '123' // 默认值可以是一个函数,取函数返回值作为默认值
}
});
还有一些其他的字段,其中有一些针对特定的
type
,官网链接
定义model
:
mongoose.model('user', userSchema); // 默认使用我们传入的model名字加字母''s'来定义集合的名称
// 也可以自己定义,一种是在定义schema时添加
mongoose.Schema({
name: { type: String }
}, {
collection: 'user'
});
// 另一种是在定义model时添加
mongoose.model('name', userSchema, user);