var mongoose = require('mongoose')
var Schema = mongoose.Schema
//1.连接数据库
//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动被创建出来
mongoose.connect('mongodb://localhost/itcast')
//2.设计集合结构(表结构)
//字段名称就是表结构中的属性名称
//约束的目的是为了保证数据的完整性,不要有脏数据
// var blogSchema = new Schema({
// title: String,
// author: String,
// body: String,
// comments: [{ body: String, date: Date }],
// date: { type: Date, default: Date.now },
// hidden: Boolean,
// meta: {
// votes: Number,
// favs: Number
// }
// });
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 Blog = mongoose.model('Blog', blogSchema);
var User = mongoose.model('User', userSchema);
//4.有了模型构造函数以后,使用这个构造函数对 users 集合中的数据进行操作(增删改查)
var admin = new User({
username:'admin',
password:'123456',
email:'[email protected]'
})
admin.save(function(err,ret){
if(err){
console.log('保存失败')
} else {
console.log('保存成功')
console.log(ret)
}
})
查询所有:
//查询所有记录,如果中间有改过数据,会把更改前后的数据都给显示出来
User.find(function(err,ret){
if(err){
console.log('查询失败')
} else {
console.log(ret)
}
})
按条件查询所有:
User.find({username:'admin'},function(err,ret){
if(err){
console.log('查询失败')
} else {
console.log(ret)
}
})
按条件查询单个:
//只查询一个,显示的是对象{},不是数组[]
//不带条件的话,显示第一个对象,一般都会带条件的
User.findOne({username:'admin'},function(err,ret){
if(err){
console.log('查询失败')
} else {
console.log(ret)
}
})
User.remove({
username:'admin'
},function(err,ret){
if(err){
console.log('删除失败')
} else {
console.log('删除成功')
console.log(ret)
}
})
根据条件更新所有:
Model.update(conditions,doc,[options],[callback])
根据指定条件更新一个:
Model.findOneAndUpdate([conditions],[update],[options],[callback])
根据id更新一个:
User.findByIdAndUpdate('5c9069fecf8c820fccb64d9c',{
password:'123'
}, function (err,ret) {
if(err) {
console.log('更新失败')
} else {
console.log('更新成功')
}
})