MongoDB入门

MongoDB是一种高性能、无模式的NoSQL数据库,适用于社交、游戏、物流、物联网和视频直播等场景。本文介绍了MongoDB的应用场景、何时使用、数据库概念、下载安装、常用命令以及Springboot集成,提供了一种快速入门MongoDB的方法。
摘要由CSDN通过智能技术生成

MongoDB

应用场景

  1. 社交场景。使用MongoDB存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能。
  2. 游戏场景。使用MongoDB存储游戏用户信息,用户装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问。
  3. 物流场景。使用MongoDB存储订单信息,订单状态再运送过程中会不断更新,以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
  4. 物联网场景。使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度分析。
  5. 视频直播。使用MongoDB存储用户信息,点赞互动信息等。

什么时候使用MongoDB

  • 应用不需要事务和复杂join。
  • 数据模型无法确定。
  • 读写比较频繁
  • 应用需要TB甚至PB级别存储。

简介

开源,高性能,无模式,NoSQL。

数据结构松散,类似于JSON的BSON。

记录是一个文档,是一个由字段和值(field:value)组成的数据结构。

术语

  • 数据库 database
  • 集合 collection 相当于MySQL中的表
  • 文档 document 相当于MySQL中的列
  • 域 field
  • 索引 index
  • 主键 primary key ,MongoDB自动将_id设置为主键

MongoDB 不支持表连接,通过嵌入式文档来代替多表连接。

下载与安装

官方下载地址

下载zip包,解压目录中新建config文件夹和数据存放目录data文件夹,该文件夹中新建配置文件mongod.conf,内容参考如下:

storage:
  dbPath: D:\software\mongodb-win32-x86_64-windows-5.0.2\data

启动命令

mongod -f ../config/mongod.conf
或
mongod --config ../config/mongod.conf

启动默认创建三个库

  • admin 存放一些权限和用户数据。
  • local 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合。
  • config 当Mongo用于分片设置时,config数据在内部使用,用于保存分片的相关信息。

使用compass客户端连接

官网下载地址

常用命令

  • mongo --host=192.168.3.53 --port=17017
  • show dbs
  • db.dropDatabase() 主要用来删除已经持久化的数据库
  • db.createCollection(“my”) 显示创建集合
  • show collections 查询所有集合
  • db.集合.drop()
  • db.comment.insert({}) 插入数据,如果没有comment集合,就会隐式创建
  • db.comment.find() 查询集合数据
  • db.comment.insertMany([]) 批量插入数据
  • db.comment.find({articleid:100001}) 可以加入参数,条件查询articleid为100001的数据
  • db.comment.findOne({articleid:100001}) 条件查询articleid为100001的数据,并筛选第一条
  • db.comment.find({articleid:100001},{articleid:1}) 条件查询articleid为100001的数据,并取第一条

可以通过try…catch的方式进行批量插入。

  • db.comment.update({_id:“1”},{likenum:NumberInt(1001)}) 覆盖修改
  • db.comment.update($set:{likenum:NumberInt(889)}) 局部修改
  • db.comment.update({userid:“1003”},{$set:{nickname:“凯撒2”}}) 批量修改,默认只修改第一条数据
  • db.comment.update({userid:“1003”},{$set:{nickname:“凯撒大帝”}},{multi:true}) 批量修改,修改所有符合条件的数据
  • db.comment.remove({_id:“3”}) 删除集合中 id 为3的文档
  • db.comment.count({条件}) 统计查询

索引

B-Tree ,MySQL是B+Tree

  • 单字段索引
  • 复合索引
  • 地理空间索引
  • 文本索引
  • 哈希索引

Springboot集成MongoDB

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
        <version>2.2.5.RELEASE</version>
      </dependency>

使用这个依赖,提供了基本的增删改成方法。使用方式和JPA类似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值