node+mongoose学习
1.安装mongoose
npm install mongoose
yarn add mongoose
2.引入mongoose
const mongoose = require("mongoose");
3.连接本地mongodb
mongoose.connect("mongodb://localhost/my_database")
// 这里的my_database是你的数据库名称 如果有就连接进去,如果没有就会在mongodb中创建my_database数据库
4.连接本地mongodb并监听是否连接
mongoose.connect("mongodb://localhost/my_database", (err) => {
if (err) {
console.log("连接本地数据库失败");
}
console.log("连接本地数据库成功");
});
5.设置一个Schema,相当于定义能传入数据库的哪些参数
const userSchema = mongoose.Schema({
name:String,
age:Number
});
6.Schema中定义的参数类型对象写法,类型与Vue的props
const userSchema = mongoose.Schema({
name: {
type: String,
trim: true, // 去除前后空格
default: "张三", // 如果没传name,默认为张三
},
age: {
type: Number,
default: "1",
},
});
设置一个model来进行操作Curd
const userModel = mongoose.model("User", userSchema, "user");
// 第一个参数绑定model的名称,如果不穿第三个参数,默认会找数据库中的复写users数据库
// 第二参数传入定义的Schema
// 第三个参数指定数据库
Curd操作
// 查看 find findOne...
userModel.find({"name":"zs"},(err,doc)=>{
if(err){
console.log('查看失败');
return;
}
// 查看当前表中的数据
console.log(doc)
})
// 更新 updata updataOne updataMany... // 可以不用加$set 默认给你处理了的
userModel.updataOne({"_id":"12121312324asadb"},{$set:{"name":"zs"}}(err,doc)=>{
if(err){
console.log('查看失败');
return;
}
// 更新当前表中的数据
console.log(doc,'更新成功')
})
// 增加
// 2种方法 insertMany save...
// 1.第一种
userModel.insertMany([{ name: "武汉深情" }], (err) => {
if (err) {
console.log("增加失败");
return;
}
console.log("增加成功");
});
// 2.第二种
const userInsert = new userModel({
name:" zs12311 ",
age:12
})
userInsert.save()
// 删除 deleteOne remove...
userModel.deleteOne({ _id: "61d93aa855c010092ecbdf30" }, (err) => {
if (err) {
console.log("删除失败");
return;
}
console.log("删除成功");
});
封装mongoose
// 你可以创建一个mode文件夹创建一个js文件来存放当前表连接和Schema的定义
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/my_database", (err) => {
if (err) {
console.log("连接本地数据库失败");
}
console.log("连接本地数据库成功");
});
const userSchema = mongoose.Schema({
name: {
type: String,
trim: true,
default: "张三",
},
age: {
type: Number,
default: "1",
},
});
const userModel = mongoose.model("User", userSchema, "user");
module.exports = userModel;
引入封装的mongoose并使用
const userModel = require("./mode/user");
// 写法与上面一致 避免过多代码在一个文件,这样也不会造成连接多次mongodb 内部做了处理
// userModel.find({条件},(err,doc)=>{...}) 查看
// userModel.updataOne({条件},(err,doc)=>{...}) 修改
// userModel.insertMany({条件},(err,doc)=>{...}) 添加
// const userInsert = new userModel({...}) userInsert.save() 添加
// userModel.remove({条件},(err,doc)=>{...}) 删除
罗列不全…,多看文档