当前位置: 首页 > news >正文

深圳市做网站的做系统网站提醒有风险

深圳市做网站的,做系统网站提醒有风险,ps怎么做网站模板,做微商那个网站好一、简介 1、MongoDB 是什么 MongoDB 是一个基于分布式文件存储的数据库#xff0c;官方地址 https://www.mongodb.com/ 2、数据看是什么 数据库#xff08;DataBase#xff09;是按照数据结构来组织、存储和管理数据的应用程序。 3、数据库的作用 主要作用是 管理数据…一、简介 1、MongoDB 是什么 MongoDB 是一个基于分布式文件存储的数据库官方地址 https://www.mongodb.com/ 2、数据看是什么 数据库DataBase是按照数据结构来组织、存储和管理数据的应用程序。 3、数据库的作用 主要作用是 管理数据对数据进行 增c、删d、改u、查r 4、数据库管理数据的特点 速度更快扩展性更强安全性更强 5、为什么选择 MongoDB 操作语法与 JavaScript 类似容易上手学习成本低 二、核心概念 数据库database是一个数据仓库数据库服务下可以创建很多数据库数据库可以存放很多集合类似于js中的数组集合collection类似于 JS 中的数组在集合中可以存放很多文档文档document是数据库中的最小单位类似于js中的对象 JSON 文件示例 { accounts: [ { id: 3-YLju5f3, title: 买电脑, time: 2023-02-08, type: -1, account: 5500, remarks: 为了上网课 },{ id: 3-YLju5f4, title: 请女朋友吃饭, time: 2023-02-08, type: -1, account: 214, remarks: 情人节聚餐 },],users:[ { id: 1, name: zhangsan,age: 18 },{ id: 2, name: lisi, age: 20 },{ id: 3, name: wangwu, age: 22 } ] }上面 json 文件中 一个 json 文件好比是一个 数据库一个 MongoDB 服务下可以有 n 个数据库json 文件中的 一级属性的数据值 好比是 集合accounts、users数组中的对象好比是 文档对象中的属性有时也称为字段 一般情况下 一个项目使用 一个数据库一个集合会存储同一种类型的数据 三、下载安装与启动 下载地址 https://www.mongodb.com/try/download/community mac 参考 mongodb 下载安装 windows 参考 视频教程 mac 中全局变量配置完以后mongod 启动服务的命令必须要在 bin 目录下才能使用mongo 启动数据库命令可以全局使用。 1、数据库命令 显示所有的数据库 show dbs切换到指定的数据库如果数据库不存在会自动创建数据库 use 数据库名显示当前所在数据库 db删除当前数据库 use 数据库名 db.dropDatabase() 2、集合命令 创建集合 db.createCollection(集合名称)显示当前数据库中所有集合 show collections删除某个集合 db.集合名.drop()重命名 db.集合名.renameCollection(newName) 3、文档命令 插入文档 db.集合名.insert(文档对象) db.account.insert({name:wangwu, age: 20})查询文档 db.集合名.find(查询条件) db.account.find({name:wangwu}) 没有查询条件就查集合里面所有的文档更新文档 db.集合名.update(查询条件新的文档) db.account.update({name:lisi},{name:lisi222}) 上面两个 新文档 会覆盖 旧文档 db.集合名.update(查询条件 {$set:更新文档}) db.account.update({name:jeck},{$set:{age:22}}) 上面命令是只修改某一项或多项不会直接覆盖删除文档 db.集合名.remove(查询条件) db.account.remove({name:lisi222}) 4、应用场景 4-1、新增 用户注册发布视频发布商品发朋友圈发评论发微博发弹幕… 4-2、删除 删除评论删除商品删除文章删除视频删除微博… 4-3、更新 更新个人信息修改商品价格修改文章内容… 4-4、查询 商品列表视频列表朋友圈列表微博列表搜索功能… 二、Mongoose 1、介绍 Mongoose 是一个对象文档模型库官网 http://www.mongoosejs.net/添加链接描述 2、作用 方便使用代码操作 mongodb 数据库 3、使用流程 安装 mongoose npm install mongoose 导入 mongoose // 导入 mongoose // 1、导入 mogoose const mongoose require(mongoose) const { type } require(os)// 2、连接 mongdb 服务器 mongoose.connect(mongodb://127.0.0.1:27017/bilibili)// 3、设置回调 mongoose.connection.once(open, () {// console.log(连接成功)// 4、创建文档的结构对象// let BookSchema new mongoose.Schema({// name: String,// author: String,// author_gemder: String,// price: Number,// is_hot: Boolean,// tags: Array,// create_time: Date// })// 字段校验let BookSchema new mongoose.Schema({name: {type: String, // 设置类型require: true, // 设置必填项unique: true // 设置唯一值},author: {type: String, // 设置类型default: 佚名 // 设置默认值},author_gemder: {type: String,enum: [男, 女, 未知] // 设置枚举值值只能从这里取其一},price: Number,is_hot: Boolean,tags: Array,create_time: Date})// 5、创建模型对象 对文档操作的封装对象可以完成对文档的增删改查操作// 第一个参数 book 是集合数组名称第二个参数 BookSchema 是结构对象let BookModel mongoose.model(book, BookSchema)// 6、新增基本对象// 如果属性跟上面定义的属性不统一在写入数据库时会忽略这个键值对// 如果属性值的类型跟上面定义的类型不同意写入时会报错写入失败BookModel.create({name: 西游记,author: 吴承恩,price: 19.9,is_hot: true,tags: [言情,都市,恐怖,玄幻],create_time: new Date(),author_gemder: 男}).then((data) {// 输出成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)}) })mongoose.connection.on(error, () {console.log(连接失败) })mongoose.connection.on(close, () {console.log(关闭连接) })// setTimeout(() { // // 关闭数据库连接 // mongoose.disconnect() // }, 3000)4、字段类型 文档结构可选的常用字段类型列表 5、字段值验证 Mongoose 有一些内建验证器可以对字段值进行验证 5-1、必填项 title: { type: String, required: true // 设置必填项 },5-2、默认值 author: { type: String, default: 匿名 //默认值 },5-3、枚举值 gender: { type: String, enum: [男,女] //设置的值必须是数组中的 },5-4、唯一值 username: { type: String, unique: true },unique 需要 重建集合 才能有效果 永远不要相信用户的输入 6、增删改查 数据库基本操作包括四个增加create删除delete修改update查read其操作都是在mongoose.connection.once(open, () {})回调中进行的 6-1、增加 插入一条 // 1、导入 mogoose const mongoose require(mongoose)// 2、连接 mongdb 服务器 mongoose.connect(mongodb://127.0.0.1:27017/bilibili)// 3、设置回调 mongoose.connection.once(open, () {// console.log(连接成功)// 4、创建文档的结构对象let BookSchema new mongoose.Schema({name: String,author: String,price: Number})// 5、创建模型对象 对文档操作的封装对象可以完成对文档的增删改查操作// 第一个参数 book 是集合数组名称第二个参数 BookSchema 是结构对象let BookModel mongoose.model(book, BookSchema)// 6、新增基本对象// 如果属性跟上面定义的属性不统一在写入数据库时会忽略这个键值对// 如果属性值的类型跟上面定义的类型不同意写入时会报错写入失败BookModel.create({name: 西游记,author: 吴承恩,price: 19.9}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)}) })mongoose.connection.on(error, () {console.log(连接失败) })mongoose.connection.on(close, () {console.log(关闭连接) })// setTimeout(() { // // 关闭数据库连接 // mongoose.disconnect() // }, 3000)插入多条 BookModel.insertMany([ { name:华为, color:灰色, price:2399, tags:[电量大,屏幕大,信号好] },{ name:小米, color:白色, price:2099, tags:[电量大,屏幕大,信号好] } ],(data){ console.log(写入成功);mongoose.connection.close(); })6-2、删除 删除一条 BookModel.deleteOne({_id:669f4719bbf7718b48b790ed}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})删除多条 BookModel.deleteMany({is_hot: false}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})6-3、文档更新 单条文档更新 BookModel.updateOne({}, {}).then() 多条文档更新BookModel.updateMany({}, {}).then() //1. 安装 mongoose //2. 导入 mongoose const mongoose require(mongoose);//设置 strictQuery 为 true mongoose.set(strictQuery, true);//3. 连接 mongodb 服务 数据库的名称 mongoose.connect(mongodb://127.0.0.1:27017/bilibili);//4. 设置回调 // 设置连接成功的回调 once 一次 事件回调函数只执行一次 mongoose.connection.once(open, () {//5. 创建文档的结构对象//设置集合中文档的属性以及属性值的类型let BookSchema new mongoose.Schema({name: String,author: String,price: Number,is_hot: Boolean});//6. 创建模型对象 对文档操作的封装对象 mongoose 会使用集合名称的复数, 创建集合let BookModel mongoose.model(novel, BookSchema);//7. 更新文档// 更新单个文档 updateOne 接收两个参数第一个是条件第二个是新的对象// BookModel.updateOne({name: 西游记}, {price: 9.9}).then((data) {// // 输出 插入成功后的文档对象// console.log(data)// // 7、关闭数据库连接项目运行过程中不会添加该代码// mongoose.disconnect()// }).catch(res {// console.error(捕捉到了错误信息res)// )// 更新多个文档BookModel.updateMany({is_hot: false}, {is_hot: true}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})});// 设置连接错误的回调 mongoose.connection.on(error, () {console.log(连接失败); });//设置连接关闭的回调 mongoose.connection.on(close, () {console.log(连接关闭); });6-4、查询文档 查询一条数据BookModel.findOne({name:23}).then() 根据 ID 查询数据BookModel.findById(‘’).then() 批量查询数据BookModel.find({}).then()有条件就根据条件查询没条件就查所有的 //1. 安装 mongoose //2. 导入 mongoose const mongoose require(mongoose);//设置 strictQuery 为 true mongoose.set(strictQuery, true);//3. 连接 mongodb 服务 数据库的名称 mongoose.connect(mongodb://127.0.0.1:27017/bilibili);//4. 设置回调 // 设置连接成功的回调 once 一次 事件回调函数只执行一次 mongoose.connection.once(open, () {//5. 创建文档的结构对象//设置集合中文档的属性以及属性值的类型let BookSchema new mongoose.Schema({name: String,author: String,price: Number,is_hot: Boolean});//6. 创建模型对象 对文档操作的封装对象 mongoose 会使用集合名称的复数, 创建集合let BookModel mongoose.model(novel, BookSchema);//7. 读取文档// 按照条件读取文档BookModel.findOne({name:狂飙}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})// 通过 id 读取文档// BookModel.findById(669f4ef193ea628ad18eeb33)//.then((data) {// console.log(data)// mongoose.disconnect()//}).catch(res {// console.error(捕捉到了错误信息res)// })// 读取所有文档// BookModel.find().then((data) {// console.log(data)// mongoose.disconnect()//}).catch(res {// console.error(捕捉到了错误信息res)// })});// 设置连接错误的回调 mongoose.connection.on(error, () {console.log(连接失败); });//设置连接关闭的回调 mongoose.connection.on(close, () {console.log(连接关闭); });7、条件控制 7-1、运算符 在 mongodb 中不能使用 , , ,,!等运算符需要使用替代符号 使用 $gt 使用 $lt 使用 $gte 使用 $lte! 使用 $ne // 查询价格小于 20 的文档 BookModel.find({price:{$lt: 20}}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})7-2、逻辑运算符 $or 逻辑或 $and 逻辑与 // 逻辑运算 - 查询 name 为 余华 或者 刘慈欣 的文档 BookModel.find({$or: [{author: 余华},{author: 刘慈欣}]}).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})7-3、正则匹配 条件中可以直接使用 js 的正则语法通过正则可以进行模糊查询 // 正则匹配 - 查询 name 包含 ‘三’ 的文档 BookModel.find({name: /三/}) BookModel.find({name: new RegExp(三)})8、个性化读取 8-1、字段筛选 取前端需要展示的字段_id 会默认取出来如果不需要要设为 0 // 字段筛选取某些字段0 不要的字段1 要获取的字段 BookModel .find() .select({name: 1, author: 1, price: 1, _id: 0}) .then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})8-2、数据排序 // 数据排序1:升序-1:倒序 BookModel .find() .select({name:1, price:1, _id: 0}) .sort({price: 1}) .then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})8-3、数据截取 常用来做分页skip 为 (页码 - 1) * limit 中的值 // 数据截取limit 接收一个参数为要截取的数据的长度skip接收一个参数表示在截取前要跳过几个数据常用作分页BookModel.find().select({name:1, price:1, _id: 0}).sort({price: 1}).skip(3).limit(3).then((data) {// 输出 插入成功后的文档对象console.log(data)// 7、关闭数据库连接项目运行过程中不会添加该代码mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)})9、模块化 config.js module.exports {DBHOST: 127.0.0.1,DBPORT: 27017,DBNAME: bilibili }db.js module.exports function (success, error () {console.log(连接失败了啊)}) {// 1、导入 mogooseconst mongoose require(mongoose)const { DBHOST, DBPORT, DBNAME } require(../config/config)// 2、连接 mongdb 服务器mongoose.connect(mongodb://${DBHOST}:${DBPORT}/${DBNAME})// 3、设置回调mongoose.connection.once(open, () {success()})mongoose.connection.on(error, () {error()})mongoose.connection.on(close, () {console.log(关闭连接)}) }BookModel.js const mongoose require(mongoose)let MovieSchema mongoose.Schema({name: String,director: String }) let MovieModel new mongoose.model(movie, MovieSchema)module.exports MovieModelbook.js const db require(./db/db) const BookModel require(./models/BookModel)db(() {BookModel.create({name: 阿勒泰,author: 阿勒泰,price: 88.8}).then((data) {console.log(data)mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)}) }) MovieModel.js const mongoose require(mongoose)let MovieSchema new mongoose.Schema({name: String,director: String }) let MovieModel mongoose.model(movie, MovieSchema)module.exports MovieModelmovie.js const db require(./db/db) const MovieModel require(./models/MovieModel)db(() {MovieModel.create({name: 第二十条,director: 张艺谋}).then((data) {console.log(data)mongoose.disconnect()}).catch(res {console.error(捕捉到了错误信息res)}) })四、图形化管理工具 我们可以使用图形化的管理工具来对 Mongodb 进行交互这里演示两个图形化工具 Robo 3T 免费 https://github.com/Studio3T/robomongo/releasesNavicat 收费 https://www.navicat.com.cn/
http://www.hkea.cn/news/14381059/

相关文章:

  • 更改wordpress程序站点网址在线网站开发培训
  • 网站开发模块学些什么html友情链接代码
  • 网站更新和维护怎么做做网站的版式会侵权吗
  • 请人做网站谁来维护鞍山网站建设公司
  • 深圳制作网站主页app软件开发公司排行
  • 网站开发从什么学起wordpress和域名
  • 山东临沂网站推广公司注册地址费用
  • 高仿网站源码asp网站开发的主要困难
  • 做个电商网站温州做微网站设计
  • 科右中旗网站建设做网站横幅的图片多大
  • 中国有名的模版网站常见的网络推广工具
  • 怎么诊断网站邢台物流网站建设
  • 推广网站可以做跳转吗wordpress啥意思
  • 济南高新区建设局网站极简风格wordpress主题
  • 一个网站需要多少容量太原百度关键词优化
  • 清远网站开发注册个网站域名多少钱一年
  • 家电维修怎么自己做网站wordpress安卓源码分析
  • 数据库 搭建 网站重庆建筑工程特种作业信息网
  • 织梦 更换网站图标珠海微信网站
  • 备案号是哪个网站百度一下你知道
  • 公司网站域名如何申请河东建设局网站
  • 做网站用地图科技数码app排名
  • 如果建设一个网站网站管理员密码忘记
  • 邢台12345网站备案平台新增网站
  • 如何建设提卡网站社交网站开发技术岗
  • 乐平网站html 标签 wordpress
  • 做网站的视频龙华做网站哪家好
  • 网站管理是什么工作株洲市天元区建设局网站
  • 手机版网站开发工具建筑行业网站有哪些
  • 专业装饰企业展厅设计公司合肥市网站优化