标签:第一个 doc 对象模型 名称 use unifi delete 引入 parser
Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。
1) 可以为文档创建一个模式结构(Schema)
2) 可以对模型中的对象/文档进行验证
3) 数据可以通过类型转换转换为对象模型
4) 可以使用中间件来应用业务逻辑挂钩
5) 比Node原生的MongoDB驱动更容易
模式(约束)对象,通过Schema可以对集合进行约束
模型对象,相当于数据库中的集合,通过该对象可以对集合进行操作
文档对象,它和数据库中的文档相对应,通过它可以读取文档的信息,也可以对文档进行各种操作
npm init 先自动创建一个package.json文件
1) 下载安装Mongoose
npm i mongoose --save
2) 引入Mongoose
var mongoose = require("mongoose");
3) 连接MongoDB数据库
mongoose.connect("mongodb://ip地址:端口号/数据库名");
const mongoose = require("mongoose"); //1.连接数据库 // connect //第一个实参是数据库地址URL //第二个实参是配置对象 //第三个实参是连接数据库的回调参数 mongoose.connect("mongodb://localhost:27017/0318_mongoose_demo",{ useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex:true },function(err){ if(err){ console.log("连接数据库失败"); }else{ console.log("连接数据库成功"); } }); // mongoose.connection.once("open",function(err){ // if(err){ // console.log("连接数据库失败"); // }else{ // console.log("连接数据库成功"); // } // }) // 2.创建约束对象(Schema) let starsSchema = new mongoose.Schema({ name:{ type:String, //声明当前字段数据类型 required:true, //声明当前字段是否必传 unique:true //声明当前字段是否唯一 }, age:Number, sex:{ type:String, default:"未知" //声明当前字段的默认值 }, roles:[String], //声明当前字段数据类型为数组, 内部子元素的类型必须是String info:mongoose.Schema.Types.Mixed }) //3.创建模型对象(Model) //第一个实参->集合名称 //第二个实参->约束对象 let starsModel = mongoose.model(‘stars‘,starsSchema); //4.创建文档对象 let starDocument = new starsModel({ name:"彭于晏", age:18.01, sex:"猛男", roles:["唐钰小宝"], info:"断臂帅哥" }) //5.将文档对象存储至数据库中,是一个promise对象 starDocument.save() .then(function(){ console.log(‘数据添加成功!!!‘) })
即可将数据保存在mongodb中,前提是mongodb服务已启动
1) Model的方法
create()
- 创建一个或多个文档对象并添加到数据库中
find()
- 查找所有符合条件的文档,返回的是数组
update()
- 修改(替换)一个或多个
remove()
- 删除一个或多个文档
let mongoose = require(‘mongoose‘); //1.连接数据库 mongoose.connect("mongodb://localhost:27017/0318_mongoose_demo",{ useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex:true },function(err){ if(err){ console.log("连接失败") }else{ console.log("连接成功") } }) // 2.创建约束对象(Schema) let starsSchema = new mongoose.Schema({ name:{ type:String, //声明当前字段数据类型 required:true, //声明当前字段是否必传 unique:true //声明当前字段是否唯一 }, age:Number, sex:{ type:String, default:"未知" //声明当前字段的默认值 }, roles:[String], //声明当前字段数据类型为数组, 内部子元素的类型必须是String info:mongoose.Schema.Types.Mixed }) //3.创建模型对象(Model) //第一个实参->集合名称 //第二个实参->约束对象 let starsModel = mongoose.model(‘stars‘,starsSchema); //C->create ,是个promise // starsModel.create({ // name:"鸡你太美", // age:9.99, // sex:"男孩子", // roles:["NBA形象大使"], // info:"cxk" // }) // .then(function(){ // console.log("添加成功") // }) //R->read // starsModel.find({age:17.99}) // .then(function(res){ // console.log(res) // }) // starsModel.findOne({age:17.99}) // .then(function(res){ // console.log(res) // }) // U->update // starsModel.updateMany({age:17.99},{$set:{age:37.99}}) // .then(function(res){ // console.log(res) // }) // starsModel.updateOne({age:37.99},{$set:{age:27.99}}) // .then(function(res){ // console.log(res) // }) // D->delete // starsModel.remove({sex:"男孩子"}) // .then(function(res){ // console.log(res) // })
标签:第一个 doc 对象模型 名称 use unifi delete 引入 parser
原文地址:https://www.cnblogs.com/fsg6/p/13603508.html