mongoDB

mongoDB面试

参考资料
B站黑马:https://www.bilibili.com/video/BV1bJ411x7mq
笔记参考:
基础:https://zhenye-na.github.io/blog/2020/01/27/intro-to-mongodb.html
高级:https://zhenye-na.github.io/2020/02/07/advanced-mongodb.html

常见面试题

https://blog.51cto.com/u_14849432/3062925

mongoDB你了解多少

基本概念,使用场景,基本操作,索引。副本(三角色),分片集群选举机制,安全认证有有一定了解。

什么是mongoDB

非关系型数据库,内部采用类似json的bson结构存储数据。它比较适合数据量大,写入操作频繁,和对事物要求不高这种场景使用。

公司使用场景

记录审单,改单日志,订单进度信息包括从下单到提交工厂到发货这一系列的信息的记录。
为什么?用表不行吗?结合mongoDB的特点。
没有事物要求,频繁写,产生的数量量随着时间的推移会很大。并且mongo的各方面运维成本也更低。

基本语法

选择切换数据库:use articledb
插入数据:db.comment.insert({bson数据})
查询所有数据:db.comment.find();
条件查询数据:db.comment.find({条件})
查询符合条件的第一条记录:db.comment.findOne({条件})
查询符合条件的前几条记录:db.comment.find({条件}).limit(条数)
查询符合条件的跳过的记录:db.comment.find({条件}).skip(条数)
修改数据:db.comment.update({条件},{修改后的数据})

db.comment.update({条件},{KaTeX parse error: Expected '}', got 'EOF' at end of input: …t.update({条件},{inc:{自增的字段:步进值}})
删除数据:db.comment.remove({条件})
统计查询:db.comment.count({条件})
模糊查询:db.comment.find({字段名:/正则表达式/})
条件比较运算:db.comment.find({字段名:{KaTeX parse error: Expected 'EOF', got '}' at position 5: gt:值}̲}) 包含查询:db.comm…in:[值1, 值2]}})

db.comment.find({字段名:{KaTeX parse error: Expected 'EOF', got '}' at position 13: nin:[值1, 值2]}̲}) 条件连接查询:db.co…and:[{条件1},{条件2}]})

db.comment.find({$or:[{条件1},{条件2}]})
索引:
expain,“stage”:“collscan”,IXSCAN

重要的是要有自己的知识体系结构,例如让你讲mongoDB你能讲啥?
基本概念,使用场景,优缺点。项目中怎么用的?基本使用操作,索引,底层原理。

副本集

简单来讲就是提供高可用支持。
三个角色
主要成员Primary(主节点):负责读写
副本成员Secondary(副本节点):同步主节点数据,不可写,只提供读
仲裁者(Arbiter):不存储数据,主要响应副本成员的心跳和选举请求来维护副本的集中仲裁

选举原则
触发条件:主节点故障,网络不可达等
获得副本集合大多数成员投票的节点获胜(选举过程中有一个优先级参数设置会影响结果,越大被投票的几率越大),n/2+1。如果票数相同数据新的获胜,数据新旧可以通过日志来对比。

分片集群

当节点存储数据和读写性能存在局限,简单理解就是把同一数据分布到不同服务器上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值