Nodejs中mongodb的使用及封装,前端经典入门教程,挥泪整理面经

Nodejs中mongodb的使用及封装,前端经典入门教程,挥泪整理面经

码农世界 2024-05-31 前端 94 次浏览 0个评论

集合(表)操作

建:db.createCollection(‘表名’,{配置})

//配置:{size:文件大小,capped:true,max:条数|文档数} capped定量

//db.表(集合).isCapped() 返回 true/false 是否是定量

查:show collections / db.getCollectionNames()

删:db.表|集合.drop()

文档(row)操作

db.集合.save({}) //添加一条

db.集合.insert({}) //添加一条

db.insertOne({}) //添加一条

db.集合.save([{},{}]) //多条

db.集合.insert([{},{}]) //多条

//insert 相同ID字段不会进行插入更改 save会

db.集合.deleteOne({要删数据条件描述}) //一条

db.集合.remove({},true) //一条

db.集合.remove({要删数据条件描述}) //多条

db.集合.remove({}) //清空表

db.集合.udpate({查询条件},{替换条件},插入boolean,全替换boolean)

//将所有的用户名为李四的年龄全都设置为20岁

db.user.update({username:“李四”},{$set:{age:20}},false,true)

第三个参数:如果更新的数据没有的话则插入,默认不插入

第四个参数:默认只更新一条数据,如果要批量更新设置true

查询条件

{age:22} age == 22

{age:{ $gt:22 }} age > 22

{age:{ $lt:22}} age < 22

{age:{$gte: 22}} age>=22

{age:{$lte:22}} age<=22

{age:{ lte:122,gte:22}} age<=122 && age>=22

{$or:[{age:22},{age:122}]} 22 or 122

{key:value,key2:value2} value && value2

{name:/正则/}

替换条件

{$set:{数据}}

{inc:{age:5}} //在原来的基础上年龄递增5

所有:db.集合.find(条件)

条数: db.集合.find().count()

去重:db.集合.distinct(key).length

db.集合.find({条件},{指定要显示列区域})

指定要显示列区域

username:1 显示这个区域

username:0 不显示这个区域

_id 是默认显示

排序

db.集合.find().sort({key:1,key2:-1}) //升

db.集合.find().sort({key:-1}) //降

限定

db.集合.find().limit(number) //限定 找几条数据

db.集合.find().skip(number) //跳过 跳过几条数据

db.集合.findOne()//找第一个

db.集合.find().limit(1) //查询第一条

Nodejs中mongodb的使用

============================================================================

mongodb在Nodejs中的操作

  1. 安装+引入

npm install mongodb -S

var mysql = require('mongodb')

  1. 实例化并连接

let mongoCt = mongodb.MongoClient

mongoCt.connect('协议://地址:端口',回调(err,client)) err 错误 client链接后的客户端

  1. 链接库和集合

let db = client.db('库名')

let user = db.collection('集合名')

  1. 集合操作

//user.API() 集合操作 返回 对象

//增

insertOne(对象数据,(err,res)=>{}) //res = 对象

insertMany(arr数据,(err,res)=>{}) //res = 对象

//res.result.n 结果 ok 状态

//res.ops内容 数组

//result.insertedId 插入后的id

//删:

deleteOne({条件},(err,result)=>{})

//改:

updateOne({条件},{更新后},(err,res)=>{})

updateMany({条件},{更新后},(err,res)=>{})

updateMany({条件},{更新后},{配置},(err,res)=>{})

//配置: upsert:true 插入 projection:true 全局替换

//查:

user.find({条件},{skip:1,limit:1,projection:{key:1}},(err,result)=>{result=对象})

user.find({条件},{projection:{key:0}}).toArray((err,result)=>{reulst==arr})

user.countDocuments((err,num)=>{num返回数量})

//排

user.find(…).sort({key:-1}).toArray…

user.find({},{projection:{},sort:{key:-1}}).toArray…

简单使用

操作步骤

安装+引入

npm install mongodb -S

var mysql = require(‘mongodb’);

实例化并连接

let mongoCt = mongodb.MongoClient;

mongoCt.connect(‘协议://地址:端口’,回调(err,client)) //err 错误 client链接后的客户端

链接库和集合

let db = client.db(‘库名’)

let user = db.collection(‘集合名’);

集合操作

//user.API() 集合操作 返回 对象

//增

insertOne(对象数据,(err,res)=>{}) //res = 对象

insertMany(arr数据,(err,res)=>{}) //res = 对象

//res.result.n 结果 ok 状态

//res.ops内容 数组

//result.insertedId 插入后的id

//删:

deleteOne({条件},(err,result)=>{})

//改:

updateOne({条件},{更新后},(err,res)=>{})

updateMany({条件},{更新后},(err,res)=>{})

updateMany({条件},{更新后},{配置},(err,res)=>{})

//配置: upsert:true 插入 projection:true 全局替换

//查:

user.find({条件},{skip:1,limit:1,projection:{key:1}},(err,result)=>{result=对象})

user.find({条件},{projection:{key:0}}).toArray((err,result)=>{reulst==arr})

user.countDocuments((err,num)=>{num返回数量})

//排

user.find(…).sort({key:-1}).toArray…

user.find({},{projection:{},sort:{key:-1}}).toArray…

关闭库

client.close()

Nodejs+mongodb代码
  • 先在mongodb里创建库student
    • 再创建其下的集合user
      • 插入数据
        • 查看

          Nodejs+mongodb

          // 1.安装引入

          const mongodb = require(‘mongodb’)

          // 2.实例化

          const mongoCt = mongodb.MongoClient

          // 3.连接 mongodb 默认端口 27017 回调 err 错误 client 连接后的客户端

          mongoCt.connect(‘mongodb://127.0.0.1:27017’, { useUnifiedTopology: true },(err, client) => {

          if (!err) {

          // 4.链接库

          let db = client.db(‘student’)

          // 5.链接集合

          let user = db.collection(‘user’)

          // 6.集合相关操作 user.API() 集合操作 返回 对象

          // 增

          // insertOne(对象数据,(err,res)=>{}) //res = 对象

          // user.insertOne({“username” : “熊大”, “age” : “17”, “address” : “树林”},(err,res)=>{

          // if(!err){

          // // console.log(res)

          // console.log(res.result.n) //结果 ok 1

          // console.log(res.ops)// 数组

          // /* [

          // {

          // username: ‘熊大’,

          // age: ‘17’,

          // address: ‘树林’,

          // _id: 5e6f574fa9dc53365059251d

          // }

          // ]*/

          // console.log(res.insertedId)// 插入后的id 5e6f575ea8e1d721fc88552c

          // // 7.关闭链接 要在异步回调里关闭链接 否则会执行不了集合相关操作

          // client.close()

          // }

          // })

          // user.insertMany([{“username” : “李二”, “age” : “25”, “address” : “北京”},

          // {“username” : “刘彦”, “age” : “17”, “address” : “上海”}],(err,res)=>{

          // console.log(res.ops)

          // /*

          // [

          // {

          // username: ‘李二’,

          // age: ‘25’,

          // address: ‘北京’,

          // _id: 5e6f59f436b34d37a4f2116f

          // },

          // {

          // username: ‘刘彦’,

          // age: ‘17’,

          // address: ‘上海’,

          // _id: 5e6f59f436b34d37a4f21170

          // }

          // ]

          // */

          // console.log(res.insertedIds)//{ ‘0’: 5e6f59f436b34d37a4f2116f, ‘1’: 5e6f59f436b34d37a4f21170 }

          // // 7.关闭链接

          // client.close()

          // })

          // 删除

          //deleteOne({条件},(err,result)=>{})

          //deleteMany({条件},(err,result)=>{})

          // user.deleteMany({username:‘熊大’},(err,res)=>{

          // console.log(res.ops)

          // console.log(res.insertedIds)

          // // 7.关闭链接

          // client.close()

          // })

          // 更新

          //updateMany({条件},{更新后},{配置},(err,res)=>{}) 配置: upsert:true 插入 projection:true 全局替换

          // user.updateMany(

          // {age:{$gt:22}},

          // {$set:{address:“人民公园”}}

          // // { upsert:true},

          // // {projection:true }

          // ,(err,result)=>{

          // console.log(“result”,result)

          // // 7.关闭链接

          // client.close()

          // })

          // 查询操作

          // user.find({条件},{skip:1,limit:1,projection:{key:1}},(err,result)=>{result=对象})

          // user.find({条件},{projection:{key:0}}).toArray((err,result)=>{reulst==arr})

          // user.countDocuments((err,num)=>{num返回数量})

          // user.find({age:{$gt:30}},(err,res)=>{

          // res.toArray((err,data)=>{

          // console.log(‘data’,data)

          // /*

          // data [

          // {

          // _id: 5e6f5ead75428112e5cc9c47,

          // username: ‘黄河’,

          // age: 35,

          // address: ‘人民公园’

          // },

          // {

          // _id: 5e6f5ead75428112e5cc9c48,

          // username: ‘李而’,

          // age: 33,

          // address: ‘人民公园’

          // }

          // ]

          // */

          // 7.关闭链接

          // client.close()

          // })

          // })

          // user.find({age:{$gt:30}}).toArray((err,data)=>{

          // console.log(‘data’,data)

          // /*

          // data [

          // {

          // _id: 5e6f5ead75428112e5cc9c47,

          // username: ‘黄河’,

          // age: 35,

          // address: ‘人民公园’

          // },

          // {

          // _id: 5e6f5ead75428112e5cc9c48,

          // username: ‘李而’,

          // age: 33,

          // address: ‘人民公园’

          // }

          // ]

          // */

          // 7.关闭链接

          // client.close()

          // })

          // 排序与分页

          user.find({},{

          skip:3, //跳过两个数据

          limit:2, //拿到两个数据

          sort:{age:1,_id:-1} // 先按age升序排列 age若相同 则按_id降序排列

          }).toArray((err,res)=>{

          console.log(res)

          /*

          [

          {

          _id: 5e6f5ead75428112e5cc9c40,

          username: ‘张三’,

          age: 18,

          address: ‘人民公园’

          },

          {

          _id: 5e6f5ead75428112e5cc9c44,

          username: ‘诸葛亮’,

          age: 19,

          address: ‘宁夏’

          }

          ]

          */

          // 7.关闭链接

          client.close()

          })

          } else {

          console.log(‘库连接失败…’, err)

          }

          })

          express+mongodb

          • 数据库中的内容

            //安装引入 express mongodb

            const express = require(‘express’)

            小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

            深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

            因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

            由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

            如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)

            Vue 面试题

            1.Vue 双向绑定原理

            2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

            3.你是如何理解 Vue 的响应式系统的?

            4.虚拟 DOM 实现原理

            5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?

            6.Vue 中 key 值的作用?

            7.Vue 的生命周期

            8.Vue 组件间通信有哪些方式?

            9.watch、methods 和 computed 的区别?

            10.vue 中怎么重置 data?

            11.组件中写 name 选项有什么作用?

            12.vue-router 有哪些钩子函数?

            13.route 和 router 的区别是什么?

            14.说一下 Vue 和 React 的认识,做一个简单的对比

            15.Vue 的 nextTick 的原理是什么?

            16.Vuex 有哪几种属性?

            17.vue 首屏加载优化

            18.Vue 3.0 有没有过了解?

            19.vue-cli 替我们做了哪些工作?

            全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

            [外链图片转存中…(img-ISML28Ig-1710829846823)]

            [外链图片转存中…(img-MT7QscDw-1710829846824)]

            [外链图片转存中…(img-gjOD0H7A-1710829846825)]

            [外链图片转存中…(img-xhQDQHO3-1710829846826)]

            由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

            如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)

            [外链图片转存中…(img-hNcZqwcU-1710829846826)]

            Vue 面试题

            1.Vue 双向绑定原理

            2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

            3.你是如何理解 Vue 的响应式系统的?

            4.虚拟 DOM 实现原理

            5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?

            6.Vue 中 key 值的作用?

            7.Vue 的生命周期

            8.Vue 组件间通信有哪些方式?

            9.watch、methods 和 computed 的区别?

            10.vue 中怎么重置 data?

            11.组件中写 name 选项有什么作用?

            12.vue-router 有哪些钩子函数?

            13.route 和 router 的区别是什么?

            14.说一下 Vue 和 React 的认识,做一个简单的对比

            15.Vue 的 nextTick 的原理是什么?

            16.Vuex 有哪几种属性?

            17.vue 首屏加载优化

            18.Vue 3.0 有没有过了解?

            19.vue-cli 替我们做了哪些工作?

            [外链图片转存中…(img-Wkw7LsGW-1710829846826)]

            开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

转载请注明来自码农世界,本文标题:《Nodejs中mongodb的使用及封装,前端经典入门教程,挥泪整理面经》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,94人围观)参与讨论

还没有评论,来说两句吧...

Top