1. 设计 Schema 发布 model
var mongoose = require('mongoose')
// Schema: 架构,模式
var Schema = mongoose.Schema
// 1.连接本机的 test 数据库
// 指定连接的数据库 不需要存在,当你插入第一条数据之后,会自动创建出来
mongoose.connect('mongodb://localhost:27017/test');
// 2. 设计文档结构(表结构)
// 字段名称 就是 表结构中的属性名称
// 值
// 约束的目的是为了保证数据的完整性,不要有脏数据
var userSchema = new Schema({
username: {
type: String,
required: true // 必须有
},
password: {
type: String,
required: true
},
email: {
type: String
}
})
// 3. 将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构 发布为 model
// 第一个参数: 传入一个大写名词单数字符串 用来表示你的数据库名称
// mongoose 会自动将 User 转成 users
// 第二个参数: 架构 Schema
// 返回值: 模型构造函数
var User = mongoose.model('User', userSchema)
// 4. 当我们有了模型构造函数之后,就可以使用这个构造函数对 User集合中的数据操作(增删改查)
2. 增加数据
var admin = new User({
username: 'admin',
password: '123456',
email: 'admin@admin.com'
})
admin.save(function(err, ret) {
if (err) {
console.log('保存失败');
} else {
console.log('保存成功');
console.log(ret);
}
})
另外两种方法
3. 查询数据
1. 查询所有数据
User.find(function(err, ret) {
if (err) {
console.log('查询失败');
} else {
console.log(ret);
}
})
ps: 数据放在一个数组里面
2. 按照条件查询单个数据
使用 findOne()方法
User.findOne({
username: 'zs'
}, function(err, ret) {
if (err) {
console.log('查询失败');
} else {
console.log(ret);
}
})
3. 表达式查询文档
ps : 按照年龄降序排列:User.find().sort(’-age’).then(result => { console.log(result) })
4. 删除数据
User.remove({
username: 'zs'
}, function(err, ret) {
if (err) {
console.log('删除失败');
} else {
console.log('删除成功');
console.log(ret);
}
})
还有一个方法: User.findByIdAndRemove()
5. 更新数据
更新单个
更新多个
6. mongoose验证
在创建集合规则时,可以设置当前字段的验证规则,验证失败就插入失败
获取验证错误信息
.catch 返回的错误对象是一个promise对象