mongoose增加,查询,删除,更新数据

3. 官方指南

3.1 设计Schema发布model

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 集合中的数据进行操作(增删改查)

3.2 增加数据

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)
	}
})

3.3 查询

查询所有:

//查询所有记录,如果中间有改过数据,会把更改前后的数据都给显示出来
 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)
	}
})

3.4 删除数据

User.remove({
	username:'admin'
},function(err,ret){
	if(err){
		console.log('删除失败')
	} else {
		console.log('删除成功')
		console.log(ret)
	}
})

3.5 跟新数据

根据条件更新所有:

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('更新成功')
 	}
 })

你可能感兴趣的:(nodejs)