MongoDB增删改查
首先连接MongoDB数据库
var mongoose = require('mongoose')
再定义架构
var Schema = mongoose.Schema
连接数据库
-
- 连接数据库
-
指定连接的数据库不需要存在,当你插入第一条数据之后就会自动被创建出来
mongoose.connect('mongodb://localhost/itcast') //itcast表示库名字可替换
设置架构
-
- 设计文档结构(表结构)
-
字段名称就是表结构中的属性名称
-
约束的目的是为了保证数据的完整性,不要有脏数据
var userSchema = new Schema({
username: {
type: String,
required: true // 必须有
},
password: {
type: String,
required: true
},
email: {
type: String
}
})
将文档结构发布为模型
- mongoose.model 方法就是用来将一个架构发布为 model
- 第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称
- mongoose 会自动将大写名词的字符串生成 小写复数 的集合名称
- 例如这里的 User 最终会变为 users 集合名称
- 第二个参数:架构 Schema
- 返回值:模型构造函数
var User = mongoose.model('User', userSchema)
1. 新增数据
var admin = new User({
username: 'zs',
password: '123456',
email: 'admin@admin.com'
})
admin.save(function (err, ret) {
if (err) {
console.log('保存失败')
} else {
console.log('保存成功')
console.log(ret)
}
})
显示结果
2. 查询数据
查询所有
User.find(function (err, ret) {
if (err) {
console.log('查询失败')
} else {
console.log(ret)
}
})
按条件查询
User.find({
username: 'zs'
}, function (err, ret) {
if (err) {
console.log('查询失败')
} else {
console.log(ret)
}
})
查找 ‘zs’ 返回的是一个数组
使用findOne()返回的是一个对象
User.findOne({
username: 'zs' //若没有这个条件 则查询结果显示的是第一条数据
}, function (err, ret) {
if (err) {
console.log('查询失败')
} else {
console.log(ret)
}
})
3. 删除数据
User.remove({
username: 'zs'
}, function (err, ret) {
if (err) {
console.log('删除失败')
} else {
console.log('删除成功')
console.log(ret)
}
})
4. 更新数据
根据ID进行数据更新
User.findByIdAndUpdate('5c55ab9e5b731d14788b0d33', {
password: '123'
}, function (err, ret) {
if (err) {
console.log('更新失败')
} else {
console.log('更新成功')
}
})