// 安装mongooes - yarn add mongooes
// 引入mongoose
const mongoose = require("mongoose")
mongoose.set('useCreateIndexes',true) // 使用新的索引器
// 连接demo数据库 27017是mongodb默认端口
mongoose.connection("mongodb://localhost:27017/demo",{
useNewUrlParse: true, //使用新的url解析器,用于解决一些安全问题
useUnifiedyopology: true //使用一个统一的新的拓扑结构
})
//监听链接,成功之后操作数据库
mongoose.connection.on("open",(err)=>{
if(err){
console.log("数据库链接失败")
}else{
console.log("数据库链接成功")
// 操作数据库
}
})
// 引入模式对象 schema
let Schema = mongoose.Schema
// 创建约束对象
let StudentsRule = new Schema({
stu_id: {
type: String,
required: true, // 必选项
unique: true, // 唯一,不能重复
},
name: {
type: String,
required: true, // 必选项
},
age: '',
sex: '',
date: {
type: Date,
default: Date.now() // 默认值为当前时间
}
enable_flag: {
type: String,
default: 'Y'
}, //必须有的字段,控制数据是否有效,一般删除操作只是把这个字段设置为N/Y,而不会真正删除数据
})
// 生成students集合对应的模型对象
let stuModel = mongoose.model('students',StudentsRule)
// 增加数据
stuModel.create({
stu_id: '001',
name: '张三',
age: 18,
sex: '男'
},function(err,data){
if(err){
console.log('数据上传失败:' + err);
}else{
console.log(data);
}
})
// 查询数据
//find(查询条件[,投影],回调函数) 方法返回的data是一个数组
//findOne(查询条件[,投影],回调函数) 返回的是一个对象,否则返回null
stuModel.find({},(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data);
}
})
//更改数据
// updata 即将弃用,不推荐
// updataOne(查询条件,更新对象[,配置对象],回调函数) 更改一条
// updataMany(查询条件,更新对象[,配置对象],回调函数) 更改多条
stuModel.updete({name:'张三'},(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data);
}
})
//删除数据
// deleteOne(查询条件,回调函数) 删除一个
// deleteMany(查询条件,回调函数) 删除多个
// 注意,没有delete方法
stuModel.deleteOne({},(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data);
}
})
mongoose操作mogodb数据库
最新推荐文章于 2024-05-16 16:30:23 发布