mongoose的使用
mongoose是用来操作mongodb数据库的,虽然很多人都用原生node.js中的mongodb第三方包。但是远没有mongoose好用。
导入和连接
和所有数据库都一样,要先导入很连接。
const mongoose = require("D:/Program Files/node/node_modules/mongoose")
//链接数据库
mongoose.connect("mongodb://localhost/test2",{userMongoClient:true})
mongoose.Promise = global.Promise;
test2代表数据库的名字,因为mongodb数据库非常的灵活,可以不用先创建数据库,而mongoose也是一样的,不用先创建数据库。
连接集合然后操作
var cat = mongoose.model("Cat",{name : String})
//实例化一个对象
var kittey = new cat({name:"xiaoming"})
//持久化保存这个实例
kittey.save(function (err) {
if (err){
throw err
}
else {
console.log("操作成功");
}
})
先连接一个集合,然后实例化一个对象,然后再对这个对象进行操作,上面哪个操作是保存一个对象。
设计集合结构
const Schema = mongoose.Schema
var user_schema = Schema({
username:{
type:String,
required:true //这个参数是一定要有的
},
age: {
type: Number, //数据类型为数字
default: 0 //默认为零
},
password:{
type:String,
required:true //这个参数是一定要有的
},
})
var user = mongoose.model("User",user_schema)
作为一个严谨的程序员,对数据一定要有约束,不能出现脏的数据。所以每个字段的数据都要有比较严格的约束
var user = mongoose.model(“User”,user_schema)
这段代码是要把我们设计的集合发布出去
插入新的数据
var admin = new user({
username:"小李",
password:"123456",
age:123
})
admin.save(function (err) {
if (err){
console.log("操作失败")
}
else {
console.log("操作成功")
}
});
因为在上面已经对数据进行了约束,所以一定要按照约束来插入数据
接着就是对数据进行保存。
查询数据
下面这个查询方法是查询所有的数据
user.find(function (err,data) {
if (err){
console.log("查询失败")
}
else {
console.log(data)
}
})
下面这个方法是按照条件进行查询
user.find({username:"小李"},function (err,data) {
if (err){
console.log("查询失败")
}
else {
console.log(data);
}
})
满足所有mongodb条件查询,可以参考原语句来变通
查询满足条件的第一条数据
user.findOne(function (err,data) {
if (err){
console.log("查询失败")
}
else {
console.log(data)
}
})
删除数据
user.remove({username:"小李"},function (err,res) {
if (err){
console.log("删除失败")
}
else {
//如果删除成功就返回受影响的数据行数
console.log(res)
}
})
在mongoose里面有几种删除方法,但是我觉得这一种是最好用的,按照条件删除。
修改数据
user.findByIdAndUpdate("5e563c2deb03c43310cae238",{
//要修改的数据
age:333
},function (err,res) {
if (err){
console.log("更新失败")
}
else {
console.log("更新成功");
}
})
这个方法是按照id来查询,还可以按照其他的条件查询,只要去官网找一下对应的api就可以啦。