MongoDb-01——Mac上安装MongoDb以及相关的简单命令

MongoDb-01——Mac上安装MongoDb以及相关的简单命令

  • 1. 下载、安装
    • 1.1 官网下载
    • 1.2 关于安装MongoDB
      • 1.2.1 官方安装文档
      • 1.2.2 Mac安装详细步骤(使用brew)
  • 2. 启动MongoDB
    • 2.1 官方说明
    • 2.2 作为macOS服务运行的相关命令
    • 2.3 访问
  • 3. 链接并使用mongodb
    • 3.1 链接mongodb
    • 3.2 简单使用mongodb
      • 3.2.1 简单命令
      • 3.2.2 简单crud使用(文档命令)
        • 3.2.2.1 插入数据
        • 3.2.2.2 查询数据
          • 3.2.2.2.1 一般查询
          • 3.2.2.2.2 模糊查询
          • 3.2.2.2.3 排序查询
          • 3.2.2.2.4 分页查询
        • 3.2.2.3 修改数据
        • 3.2.2.4 删除数据
        • 3.2.2.5 更多操作参考
          • 3.2.2.5.1 更多语法及例子
          • 3.2.2.5.2 操作符等其他更多文档
  • 4. navicat链接

1. 下载、安装

1.1 官网下载

  • 官网下载:
    https://www.mongodb.com/try/download/community.
    选择对应的版本下载,如下:
    在这里插入图片描述

1.2 关于安装MongoDB

1.2.1 官方安装文档

  • 关于安装建议参考中文文档,各操作系统的安装都有了
    MongoDB 中文手册.

  • 上面文档可能不是根据最新版本定的,所以,如果想安装最新版本的,可以参考官方英文网站,如下:
    https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/.

1.2.2 Mac安装详细步骤(使用brew)

  • 我这里也是参考上面安装步骤,使用 brew 进行安装的,具体请看下面步骤。
    关于 brew ,如果没有安装的,请移步下面的文章:
    mac上安装Homebrew的详细介绍包括解决各种问题以及使用Homebrew安装git、svn等软件.
  • 安装步骤:
    • 更新 brew,随自己,可更新可不更新
      brew update
      
    • 创建一个tap仓库
      brew tap mongodb/brew
      
      在这里插入图片描述
    • 安装指定版本的 mongodb-community Server,如果不指定版本,默认好像也是安装最新版本
      brew install mongodb-community@7.0
      
  • 查看是否安装成功
    • 安装之后,通过下面命令查看是否安装上
      brew list
      
      在这里插入图片描述
  • 安装文件说明
    • 除二进制文件外,安装过程还会根据你的Apple硬件在以下指定位置创建以下文件和目录,如下:
      在这里插入图片描述
    • 可以执行以下命令来检查brew将这些文件和目录安装在哪里
      brew --prefix
      
      在这里插入图片描述

2. 启动MongoDB

2.1 官方说明

  • 直接看官网说明:
    在这里插入图片描述

2.2 作为macOS服务运行的相关命令

  • 启动服务:
    brew services stop mongodb-community@7.0
    
  • 查看MongoDB服务是否正在运行
    brew services list
    
    在这里插入图片描述
  • 停止服务:
    brew services stop mongodb-community@7.0
    
  • 查看占用的端口
    • 先查看进程ID
      ps -ef | grep mongodb
      
      在这里插入图片描述
    • 使用 lsof ,根据进程ID查看端口
      lsof -i | grep 24403 
      
      在这里插入图片描述
    • 补:使用 lsof ,根据端口 查 服务和进程
      lsof -i:27017
      
      在这里插入图片描述

2.3 访问

  • 知道端口之后不妨访问试试,当然,访问不通,协议不同,但是可以说明mongodb服务启动了,如下:
    http://127.0.0.1:27017/
    
    在这里插入图片描述

3. 链接并使用mongodb

3.1 链接mongodb

  • 链接命令:
    mongosh
    
    在这里插入图片描述

3.2 简单使用mongodb

3.2.1 简单命令

  • 常用简单命令,如下:
    show dbs   #查看所有数据库db   # 查看当前数据库db.getName() #查看当前数据库名称use dbName   # 切换数据库(注意:有这个数据库,则会选中这个数据库,没有则会创建)db.version()  # 查看mongodb版本db.stats()   # 查看数据库状态信息db.getMongo()  #查看数据库的链接地址db.dropDatabase()  # 删除数据库
    ……
    
    在这里插入图片描述
  • 关于创建 数据库 和 集合
    use susu_test    # 切换数据库susu_test(注意:有这个数据库,则会选中这个数据库,没有则会创建)db.createCollection(name, options)    # 创建集合  name:集合名,字符
    db.createCollection('dog')show collections   # 查看当前数据库所有集合db.集合名.renameCollection('集合新名')    # 重命名集合
    db.cat.renameCollection('cats')db.集合名.drop()    # 删除集合
    db.cats.drop()
    
    在这里插入图片描述

3.2.2 简单crud使用(文档命令)

3.2.2.1 插入数据

  • 插入单条数据
    • 语法:
      db.dog.insert({})db.dog.insertOne({})
      
    • 例子:
      db.dog.insert({dogNum:'A-1001',dogName:'麦兜',dogAge:3,dogKind:'边牧'})db.dog.insertOne({dogNum:'A-1002',dogName:'泡泡',dogAge:5,dogKind:'柯基'})
      
  • 插入多条数据
    • 语法:
      db.dog.insert([{},{}])
      
    • 例子:
      db.dog.insert([{dogNum:'A-1003',dogName:'大牙',dogAge:2,dogKind:'边牧'},{dogNum:'A-1004',dogName:'闪闪',dogAge:8,dogKind:'秋田'}])
      
  • 如图:
    在这里插入图片描述
    在这里插入图片描述

3.2.2.2 查询数据

3.2.2.2.1 一般查询
  • 语法如下:
    db.dog.find()   # 1.查询所有db.集合名.find({key:val})   # 2.指定键值对条件查询
    db.dog.find({dogNum:'A-1005'})db.集合名.find({key:{$in:[value1,value2]}})    # 3.包含,等价于sql中的in查询
    db.dog.find({dogNum:{$in:['A-1005','A-1006']}})db.集合名.find({key1:val1},{key2:val2}……)  # 4. 多条件查询 同时满足
    db.dog.find({dogKind:'边牧',dogAge:{$lt:3}})  #品种是边牧,并且年龄小于3的
    db.dog.find({$and:[{dogKind:'边牧'},{dogAge:{$lt:3}}]}) #$and 等价于上条写法db.dog.find({$or:[{dogKind:'边牧'},{dogAge:{$lt:3}}]}) # $or 满足条件之一即可
    
  • 效果如下:
    在这里插入图片描述
    在这里插入图片描述
3.2.2.2.2 模糊查询
  • 语法如下:
    db.集合名.find({key:/val/})   #  1. 模糊查询(包含val的数据),  注意:val 不能用引号
    db.dog.find({dogName:/兜/})db.集合名.find({ key: /^val/})  # 2.1 查询key中包含val,且以val开头的数据
    db.dog.find({dogName:/^麦/})  # 注意:不加引号db.dog.find({key:{$regex:'^val'}})  # 2.2 查询key中包含val,且以val开头的数据
    db.dog.find({dogName:{$regex:'^麦'}})  # 注意:加引号# 同理,查询以XXX结尾的语法类似,两种写法,如下:
    db.dog.find({dogName:/兜$/})
    db.dog.find({dogName:{$regex:'兜$'}})
  • 效果如下:
    在这里插入图片描述
    在这里插入图片描述
3.2.2.2.3 排序查询
  • 语法:
    db.集合名.find({key:val}).sort({key:1})  # 1 升序,-1 将序db.dog.find({dogKind:'边牧'}).sort({dogAge:-1}) # 按年龄将序
    
    在这里插入图片描述
3.2.2.2.4 分页查询
  • 语法:
    db.集合名.find({key:val}).limit(num).skip(start)  # num:表示pageSzie , start:表示起始索引,默认为0db.dog.find({dogKind:'边牧'}).limit(2).skip(1)
    
  • 如下:
    在这里插入图片描述

3.2.2.3 修改数据

  • 语法如下:
    db.dog.updateOne({key:val},[{$set:{key1:val1,key2:val2}}])db.dog.updateOne({dogName:'麦兜'},[{$set:{dogKind:'边境牧羊犬'}}])
    db.dog.updateOne({dogName:'麦兜'},[{$set:{dogKind:'边牧犬',dogAge:4}}])
    db.dog.updateOne({dogName:'麦兜'},{$set:{dogKind:'边牧犬22',dogAge:3}})  # []可以去掉
    

3.2.2.4 删除数据

  • 根据指定的键值对条件:
    db.集合.deleteOne({key:val})   # 1.1 删除单条数据,最多删除一个匹配指定筛选器的文档,即使多个文档可能匹配指定筛选器。
    db.dog.findOneAndDelete({dogKind:'秋田'}) # 1.2 删除单条数据,即便满足的有多条,删除之后,返回删除的数据db.集合.deleteMany({key:val})  # 删除多条数据,删除与指定筛选器匹配的所有文档。db.dog.remove({dogKind:'边牧'});  # remove() 删除满足条件的数据(可多条) ,但提示方法已被弃用db.集合.deleteMany({})   # 删除所有数据(如果给条件删除满足条件的数据,如果不给条件,删除所有的数据)
    db.dog.deleteMany({dogNum:{$in:['A-1005','A-1006']}})  # 删除满足条件的数据
    

3.2.2.5 更多操作参考

3.2.2.5.1 更多语法及例子
  • 请参考官网:
    中文网.
    英文网.
3.2.2.5.2 操作符等其他更多文档
  • 关于更多查询及操作符用法,参考下面的网站
    https://www.mongodb.org.cn/manual/query-comparison/.
    在这里插入图片描述

4. navicat链接

  • 服务只要起着,直接连就行
    在这里插入图片描述
  • 连上之后查看数据:
    • 可以使用命令查询:
      在这里插入图片描述
    • 也可以使用navicat自带的图形化查询
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/119783.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于飞桨图学习框架的空间异配性感知图神经网络

本期文章将为大家分享飞桨社区开发者肖淙曦、周景博发表于数据挖掘顶会KDD2023的论文《Spatial Heterophily Aware Graph Neural Networks》。 肖淙曦 肖淙曦,百度研究院商业智能实验室研究实习生,中国科学技术大学在读博士生,主要从事时空…

基于SpringBoot的Web开发案例过程讲解-项目准备

基于SpringBoot的Web开发案例过程笔记-项目准备 1)环境搭建【1】准备数据库表【2】创建Springboot项目并引入相关依赖【3】配置application.properties文件【4】创建相关的包和类 2) 三层架构工作流程3)开发规范-Restful4)相关的注解5)项目开…

二三维电子沙盘数字沙盘虚拟现实开发教程第14课

二三维电子沙盘数字沙盘开发教程第14课 很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错。以前的版本显示倾斜数据控制不太好。 对了。目前系统暂只支持smart3d生成的kml格式的数据,由专有的录入程…

2023年7月京东投影仪行业品牌销售排行榜(京东大数据)

鲸参谋监测的京东平台7月份投影仪行业销售数据已出炉! 7月份,投影仪市场呈现增长趋势。根据鲸参谋平台的数据可知,7月京东平台投影仪的销量将近20万,同比增长约16%;销售额将近3.8亿,同比增长约4%。 ​*数据…

Kubernetes技术--k8s核心技术持久化存储

有时候需要在集群中进行一些重要的数据进行持久化存储,然后需要的时候再进行挂载,那么下面我们一起来看看如何实现数据的持久化存储操作。 1.nfs网络存储 -1.找一台服务器做nfs的服务端,安装nfs。(这里我们直接在master上实现)。 这里应该找再单独的搭建一个node节点做持…

考研408 | 【计算机组成原理】计算机系统的概述

计算机的发展 硬件的发展: 摩尔定律: 微处理机的发展: 软件的发展: 发展趋势: 总结: 计算机硬件的基本组成 早期的冯诺依曼机: 现代计算机的结构: 总结: 各个硬件的工作…

按键精灵调节界面不显示插件

就像我这样的---这是正常的现象 但是假如你不小心把这个给岔了,那么 点击了启动它就是这样的 这个东西的唯一解决措施就是电脑重启,没得办法,天地万物都有bug这个没得办法

数据分析 | 特征重要性分析 | 树模型、SHAP值法

前言 在分析特征重要性的时候,相关性分析和主成分分析往往是比较简单的方法,相关性分析是通过计算特征与目标变量之间的相关系数来评估特征的重要性。它可以告诉我们特征和目标变量之间的线性关系程度,但对于非线性关系就无能为力了&#xff…

虹科产线实时数采检测方案——高速采集助力智能化升级

01 产线数采检测相关技术背景 1.1 典型场景 对于产线数采检测,让我们从典型的工厂场景开始介绍。 每个工位都有上位机监控下方的PLC控制器。指令、执行单元和作用对象的状态通过内置传感器进行采集和测量,反馈给PLC实现闭环控制。 工业4.0和智能制…

输出归一化位置式PID(COTRUST完整梯形图代码)

SMART PLC单自由度和双自由度位置式PID的完整源代码,请参看下面文章链接: 位置式PID(S7-200SMART 单自由度、双自由度梯形图源代码)_RXXW_Dor的博客-CSDN博客有关位置型PID和增量型PID的更多详细介绍请参看PID专栏的相关文章,链接如下:SMART PLC增量型PID算法和梯形图代码…

pdf怎么转换成word?

随着数字化时代的到来,PDF(Portable Document Format)已成为最受欢迎的文档格式之一,因其在各种设备上的可视性和稳定性而备受推崇。然而在某些情况下,将PDF转换为Word文档可能是必要的,这使得编辑、修改和重新格式化文本变得更加…

freemarker学习+集成springboot+导出word

目录 一 FreeMarker简介 二 集成springboot,实现案例导出 三 常见面试题总结 一 FreeMarker简介 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件&…

【Sword系列】Vulnhub靶机HACKADEMIC: RTB1 writeup

靶机介绍 官方下载地址:https://www.vulnhub.com/entry/hackademic-rtb1,17/ 需要读取靶机的root目录下key.txt 运行环境: 虚拟机网络设置的是NAT模式 靶机:IP地址:192.168.233.131 攻击机:kali linux,IP地…

开发一个npm包

1 注册一个npm账号 npm https://www.npmjs.com/ 2 初始化一个npm 项目 npm init -y3编写一段代码 function fn(){return 12 }exports.hellofn;4发布到全局node_module npm install . -g5测试代码 创建一个text文件 npm link heath_apisnode index.js6登录(我默认的 https…

系统中出现大量不可中断进程和僵尸进程(理论)

一 进程状态 当 iowait 升高时,进程很可能因为得不到硬件的响应,而长时间处于不可中断状态。从 ps 或者 top 命令的输出中,你可以发现它们都处于 D 状态,也就是不可中断状态(Uninterruptible Sleep)。 R …

开源django+mysql+vue3前后端分离商城baykeShop使用指南

baykeShop开源商城系统 项目简介 baykeShop(拜客商城系统)是一款全开源Python栈商城系统,管理后台完全前后端分离重写以适配项目,前后端100%开源,后台前端采用开源SCUI开源库对接开发,美观、易用、符合当…

C++算法 —— 动态规划(1)斐波那契数列模型

文章目录 1、动规思路简介2、第N个泰波那契数列3、三步问题4、使用最小花费爬楼梯5、解码方法6、动规分析总结 1、动规思路简介 动规的思路有五个步骤,且最好画图来理解细节,不要怕麻烦。当你开始画图,仔细阅读题时,学习中的沉浸…

uni-app之android离线打包

一 AndroidStudio创建项目 1.1,上一节演示了uni-app云打包,下面演示怎样androidStudio离线打包。在AndroidStudio里面新建空项目 1.2,下载uni-app离线SDK,离线SDK主要用于App本地离线打包及扩展原生能力,SDK下载链接h…

k8s使用ECK(2.4)形式部署elasticsearch+kibana-http协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、准备elasticsearch-cluster.yaml二、部署并测试总结 前言 之前写了eck2.4部署eskibana,默认的话是https协议的,这里写一个使用http…

开源照片管理服务LibrePhotos

本文是为了解决网友 赵云遇到的问题,顺便折腾的。虽然软件跑起来了,但是他遇到的问题,超出了老苏的认知。当然最终问题还是得到了解决,不过与 LibrePhotos 无关; 什么是 LibrePhotos ? LibrePhotos 是一个自托管的开源…