node+mongoose学习

董高洁
2023-12-01

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)=>{...})  删除

罗列不全…,多看文档

 类似资料: