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.mzph.cn/news/66869.shtml

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

相关文章

docker笔记3 Docker常规安装

1.安装tomcat docker hub上面查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull tomcat docker images查看是否有拉取到的tomcat 使用tomcat镜像创建容器实例(也叫运行镜像) docker run -it -p 8080:8080 tomcat -p 小写,主…

零撸大肉,赛博尔Seppol游戏,无限制闯关打碎片,装备,直接变现项目。

2023年7月10日,在上海外滩酒店—— 由来自硅谷、华尔街的技术先锋,与中国科技翘楚阿里、腾讯的骨干团队联手呈现,区块链元宇宙游戏塞波尔 Seppol于上海精彩亮相路演。 1,栖息之地,宠物可放入栖息之地进行挖矿&#xf…

【STM32】学习笔记(OLED)

调试方式 OLED简介 硬件电路 驱动函数 OLED.H #ifndef __OLED_H #define __OLED_Hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OL…

地质灾害监测方案(地质灾害监测原理与方法)

我国坡地较多,地质灾害时有发生,给人民生命财产安全和经济建设造成严重威胁。采用工业物联网技术进行地质灾害监测,可以实现对山体移动、边坡变形等地质灾害的预警和实时监测,保护人民生命财产安全。现提出如下地质灾害监测方案: 1. 监测场景:针对易发地质灾害的区域,如矿山边坡…

ReactNative 井字游戏 实战

效果展示 需要的插件准备 此实战项目需要用到两个插件。 react-native-snackbar 底部信息提示组件。 react-native-vector-icons 图标组件。 安装组件: npm i react-native-snackbar npm i react-native-vector-icons npm i types/react-native-vector-icons /…

java企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff…

Opencv手工选择图片区域去水印

QT 插件化图像算法研究平台的功能在持续完善,补充了一个人工选择图片区域的功能。 其中,图片选择功能主要代码如下: QRect GLImageWidget::getSeleted() {QRect ajust(0,0,0,0);if(image.isNull() || !hasSelection)return ajust;double w1…

Springboot 接口方式硬通知实现ConfigurationProperties 、@Value 动态刷新

前言 看到这个文章标题,也许有的看官就觉得很多余, 因为Nacos 可以设置 NacosValue(value "${XXX}",autoRefreshed true) 实现动态刷新; 又因为cloud config的RefreshScope 实现动态刷新; 还有阿波罗...等 这…

【python爬虫】13.吃什么不会胖(爬虫实操练习)

文章目录 前言项目实操明确目标分析过程代码实现 前言 吃什么不会胖——这是我前段时间在健身时比较关注的话题。 相信很多人,哪怕不健身,也会和我一样注重饮食的健康,在乎自己每天摄入的食物热量。 不过,生活中应该很少有人会…

景联文科技:高质量AI数据标注助力大语言模型训练,推动人工智能落地应用

大语言模型在各类LLM新技术的融会贯通下,不断加速Instruction-tuning、RLHF、思维链等新技术在大语言模型中的深度应用,人工智能技术以惊人的速度不断进化。 大语言模型(LLM)是一种基于深度学习技术和海量文本数据,它们…

Leetcode:349. 两个数组的交集【题解超详细】

题目 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 难度:简单 题目链接:349.两个数组的交集 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,…

【08期】ArrayList常见面试题

简介 ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高。 线程安全性 对ArrayList的操作…

百度文心一言GPT免费入口也来了!!!

文心一言入口地址:文心一言能力全面开放 文心一言是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。 文心一言的技…

Python 分析HTTP的可靠性

在这篇文章中,我们将介绍如何使用 Python 来分析代理服务提供商的可靠性。代理服务在许多场景中都非常有用,例如突破地理限制、保护隐私和提高网络安全性。然而,并非所有的代理服务提供商都是可靠的。因此,我们将使用 Python 来测…

【传输层】TCP -- 三次握手四次挥手 | 可靠性与提高性能策略

超时重传机制连接管理机制三次握手四次挥手滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP应用层协议理解 listen 的第二个参数 超时重传机制 主机A发送数据给B之后,可能因为网络拥堵等原因,数据无法到达主机B&#xff1…

3DCAT携手华为,打造XR虚拟仿真实训实时云渲染解决方案

2023年5月8日-9日,以 因聚而生 众志有为 为主题的 华为中国合作伙伴大会2023 在深圳国际会展中心隆重举行。本次大会汇聚了ICT产业界的广大新老伙伴朋友,共同探讨数字化转型的新机遇,共享数字化未来的新成果。 华为中国合作伙伴大会2023现场&…

在线音乐播放器测试报告

文章目录 一、项目背景二、项目功能三、测试目的四、测试环境五、测试计划5.1 功能测试5.2 自动化测试 六、测试结果 一、项目背景 今天,市面上的音乐播放器种类繁多同时功能强大。一个单纯的音乐播放器可能不再单纯只是音乐播放的功能,而是更多地集短视…

对战ChatGPT,创邻科技的Graph+AI会更胜一筹吗?

大模型(大规模语言模型,即Large Language Model)的应用已经成为千行百业发展的必然。特定领域或行业中经过训练和优化的企业级垂直大模型则成为大模型走下神坛、真正深入场景的关键之路。 但是,企业级垂直大模型在正式落地应用前…

机器人中的数值优化(十一)——高斯牛顿法、LMF方法、Dogleg方法

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

【FPGA零基础学习之旅#11】数码管动态扫描

🎉欢迎来到FPGA专栏~数码管动态扫描 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正…