面试官:MongoDB是什么,它有什么特性与使用场景?

哈喽!大家好,我是小奇,一个专给面试官添堵的撑序员

小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧

文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!

文章目录

一、前言

最近在"某奴直聘"上找了一份工作,虽然工资低,但是工作也累啊。但好歹可以提现我的价值了,我的价值就是让老板早日买车买房。。。

人事小姐姐说是日不落工作模式,我想着应该是一种很潮流的工作模式吧。。。

二、面试

面试官:我看你简历上写的精通MongoDB?(面试官鄙夷的看了我一眼)

我:准确来说不是精通,而是登峰造极。

面试官:呵呵、那你先说一说MongoDB是什么吧

我:Mongodb是一款非关系型数据库,它区别于关系型数据库最显著的特征就是没有SQL语句,所存储的数据也没有固定的数据类型

面试官:MongoDB有什么特性呢?

我:MongoDB存储的数据类似于json文档格式。如下。


面试官:MongoDB如何安装使用呢?

1、获取安装包

wget https://fastdl.mongodb.org/linux/mongodb‐linux‐x86_64‐rhel70‐4.4.2.tgz

  1. 进行解压

tar ‐xvzf mongodb‐linux‐x86_64‐rhel70‐4.4.2.tgz

  1. 添加到系统执行路径下面( ~/.bashrc)

export PATH=$PATH:<你机器MongoDB bin目录,如:/usr/local/mongodb/mongodb‐linux‐x86_

64‐rhel70‐4.4.2/bin>

执行 source ~/.bashrc

  1. 创建数据目录

mkdir ‐p /data/db # 这个路径是MongoDB默认的数据存放路径

  1. 启动MongoDB服务

mongod # 如果你不希望使用的默认数据目录可以通过 添加 ‐‐dbpath 参数指定路径

或者从后台启动

mongod --logpath /data/db/logpath/output --fork

需要指定 --logpath , 或者--syslog

客户端使用( mongo shell, 用来操作MongoDB的javascript客户端界面 ):

  1. 连接服务

1 mongo ‐‐host ‐‐port

2 # 如果在本机使用的都是默认参数,也可以直接忽略所有参数

面试官:MongoDB有哪些语法呢?

基本操作:添加数据

1 db.集合.insertOne(<JSON对象>) // 添加单个文档

例如

db.emp.insertOne(

{

name:"zhangsan",

age:20,

sex:"m"}

);

条件查询

  1. 精准等值查询
    db.inventory.find( { status: "D" } );
    db.inventory.find( { qty: 0 } );
  2. 多条件查询
    db.inventory.find( { qty: 0, status: "D" } );
  3. 嵌套对象精准查询
    db.inventory.find( { "size.uom": "in" } );
  4. 返回指定字段
    db.inventory.find( { }, { item: 1, status: 1 } );
    默认会返回_id 字段, 同样可以通过指定 _id:0 ,不返回_id 字段
  5. 条件查询 and
    db.inventory.find({$and:[{"qty":"0"},{"status":"A"}]}).pretty();
  6. 条件查询 or
    db.inventory.find({$or:[{"qty":"0"},{"status":"A"}]}).pretty();

面试官:确实有些东西,那你今天晚上来上班吧,我们是日不落模式的?

我:黑奴啊。。。

三、总结

这里关于MongoDB还没有整理完毕,文章后面持续更新,建议收藏。
文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。
如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】阅读更多的好文章,获取我为大家准备的资料。

相关推荐
自不量力的A同学27 分钟前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
Exquisite.29 分钟前
Mysql
数据库·mysql
全栈前端老曹1 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
R1nG8631 小时前
CANN资源泄漏检测工具源码深度解读 实战设备内存泄漏排查
数据库·算法·cann
阿钱真强道1 小时前
12 JetLinks MQTT直连设备事件上报实战(继电器场景)
linux·服务器·网络·数据库·网络协议
逍遥德2 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
笨蛋不要掉眼泪2 小时前
Redis哨兵机制全解析:原理、配置与实战故障转移演示
java·数据库·redis·缓存·bootstrap
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-整体架构优化设计方案
java·数据库·人工智能·spring boot·架构·ddd
fen_fen10 小时前
Oracle建表语句示例
数据库·oracle
砚边数影12 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库