MongoDB基础

MongoDB相关概念

MongoDB是一款非关系型的文档数据库。文档数据库一般存储类似于json格式的bson数据,存储内容是文档类型。

MongoDB结构

SQL术语MongoDB术语解释
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
indexindex索引
table joins表连接,MongoDB不支持
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

MongoDB的相关操作

数据库的相关操作

语句解释
use db创建数据库db,如果db存在则为切换到db数据库
show dbs查看所有的数据库
db.dropDatabase()删除数据库db

集合的相关操作

语句解释
db.createCollection(name, options)向db数据库中建立一个集合。name参数为集合的名字。可选参数有capped、size、max。当capped的值为true时该集合为固定大小,这时必须指定size参数的数值。max为指定该集合最大包含的文档数。
show collections/show tables展示该数据库中的集合
db.collection.drop()如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

文档的相关操作

文档的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。
BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

insert

db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:

db.collection.insertOne(
   <document>, //要写入的文档。
   {
      writeConcern: <document>//写入策略,默认为 1,即要求确认写操作,0 是不要求。
   }
)

db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>//指定是否按顺序写入,默认 true,按顺序写入。
   }
)

update

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>, //update的查询条件,类似sql update查询内where后面的。
   <update>, //需要更改的对象和一些更新的操作符(如$set,$inc...)等。
   {
     upsert: <boolean>, //可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
     multi: <boolean>, //可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
     writeConcern: <document> //可选,抛出异常的级别。
   }
)

save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:

db.collection.save(
   <document>, //文档
   {
     writeConcern: <document> //可选,抛出异常的级别。
   }
)

delete

语句解释
deleteOne()删除一个文档。例如:db.inventory.deleteOne( { status: “D” } )只会删除一条集合中status 等于 D 的一个文档
deleteMany()删除所有文档。例如db.inventory.deleteMany({})将删除集合中的所有文档,db.inventory.deleteMany({ status : “A” })将删除集合中所有 status 等于 D 的一个文档

操作符

操作格式
等于{key : value}
小于{key : {$lt : value}}
小于或等于{key : {$lte : value}}
大于{key : {$gt : value}}
大于或等于{key : {$gte : value}}
不等于{key : {$ne : value}}
AND{key1:value1, key2:value2}
OR{$or : [{key1 : value1}, {key2 : value2}]}
匹配数据类型{“title” : {$type : 2}}

find

条件查询
find()函数用于查询集合中符合条件的文档,格式如下:

db.collection.find(query, projection)
/*
  query :可选,使用查询操作符指定查询条件,当该参数为空时,查询所有文档。
  projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
  如果你需要以易读的方式来读取数据,可以使用 pretty() 方法:db.col.find().pretty()
  */

分页查询
如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
语法格式为:

db.collection.find().limit(n).skip(n)

sort

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
例如:

db.collection	.find().sort({KEY:1})

索引

索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。
这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。
索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构
MongoDB使用 createIndex() 方法来创建索引。

db.collection.createIndex(keys, options)

SpringBoot集成MongoDB

引入依赖

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

配置application.propertie

Spring.data.mongodb.uri =  mongodb://服务器IP:端口/数据库名

相关注解

@Document

修饰在类上,可以将一个POJO对象映射为Dongodb上的一条文档数据。属性value、collection用来指定插入集合的名称。

@ID

修饰在字段或者字段对应的set方法上,将字段的值映射为_id的值。

@Field

修饰在字段或者字段对应的set方法上,将字段的名字与值映射为key、value。属性name、value用来指定文档中key的名称,默认为成员变量名。

@Transient

修饰在字段或者字段对应的set方法上。用来指定该字段不参与序列化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值