Mongodb基本操作

释放双眼,带上耳机,听听看~!

文章目录

  • 连接数据库
  • 创建数据库
  • 删除数据库
  • 创建集合
  • 删除集合
  • 插入文档
  • 更新文档
  • save()方法
  • 删除文档
  • 查询文档
  • $type 操作符
  • Limit与Skip方法
  • 排序
  • 索引
  • 聚合

连接数据库

标准 URI 连接语法:
mongodb://[username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]

  • mongodb:// 这是固定的格式,必须要指定
  • username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库
  • host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
  • portX 可选的指定端口,如果不填,默认为27017
  • /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
  • ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

连接实例:


1
2
3
4
1使用用户名fred,密码foobar登录localhost的baz数据库。
2mongodb://fred:foobar@localhost/baz
3
4

创建数据库

语法:use DATABASE_NAME
查看所有数据库

show dbs

删除数据库

语法:db.dropDatabase() //删除当前所在数据库

创建集合

语法:db.createCollection(name, options)
参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

删除集合

语法:db.collection.drop()

插入文档

文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式,BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,
语法:db.COLLECTION_NAME.insert(document)
db.collection.insertOne():插入一条文档
db.collection.insertMany:插入多条文档

更新文档

mongodb可以使用update()和save()方法更新集合中的文档
update()方法
语法格式:


1
2
3
4
5
6
7
8
9
10
11
1db.collection.update(
2   <query>,
3   <update>,
4   {
5     upsert: <boolean>,
6     multi: <boolean>,
7     writeConcern: <document>
8   }
9)
10
11

参数说明:

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

save()方法

save() 方法通过传入的文档来替换已有文档
语法格式:


1
2
3
4
5
6
7
8
1db.collection.save(
2   <document>,
3   {
4     writeConcern: <document>
5   }
6}
7
8

参数说明:

  • document:文档数据
  • writeConcern:可选,抛出异常的级别

3.2版本开始,支持更新单个或者多个文档

  • db.collection.updateOne() 向指定集合更新单个文档
  • db.collection.updateMany() 向指定集合更新多个文档

删除文档

MongoDB remove()函数是用来移除集合中的数据。MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确。
语法:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1db.collection.remove(
2   <query>,
3   <justOne>
4)
52.6版本后
6db.collection.remove(
7   <query>,
8   {
9     justOne: <boolean>,
10     writeConcern: <document>
11   }
12)
13
14

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

官方推荐使用:
deleteOne()
deleteMany()

查询文档

MongoDB 查询文档使用 find() 方法。
语法格式:


1
2
3
1db.collection.find(query, projection)
2
3

参数说明:

  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)

以易读的方式读取数据

1
1`

>db.col.find().pretty()
Mongodb基本操作
MongoDB 与 RDBMS Where 语句比较

and条件:

db.col.find({key1:value1, key2:value2}).pretty()

or条件


1
2
3
4
5
6
7
8
9
1>db.col.find(
2   {
3      $or: [
4         {key1: value1}, {key2:value2}
5      ]
6   }
7).pretty()
8
9

$type 操作符

$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
使用实例:


1
2
3
4
5
1#获取 "col" 集合中 title 为 String 的数据
2db.col.find({"title" : {$type : 'string'}})  
3
4
5

Limit与Skip方法

limit():接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
语法:

db.COLLECTION_NAME.find().limit(NUMBER)

Skip():跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
语法:

db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

注意:
skip和limit方法只适合小数据量分页,如果是百万级效率就会非常低,因为skip方法是一条条数据数过去的,建议使用where_limit,或者结合操作符
使用实例:


1
2
3
4
5
6
7
1#读取从 10 条记录后 100 条记录,相当于 sql 中limit (10,100)
2> db.COLLECTION_NAME.find().skip(10).limit(100)
3
4#查寻第100001条数据,这条数据的Amount值是:2399927
5db.test.find({amount:{$gt:2399927}}).sort({"amount":1}).limit(10)  //53ms
6
7

排序

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

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

索引

创建索引语法:

db.collection.createIndex(keys, options)

可选参数:
Mongodb基本操作
辅助命令:


1
2
3
4
5
6
7
8
9
10
11
12
13
1# 查看集合索引
2db.col.getIndexes()
3
4# 查看集合索引大小
5db.col.totalIndexSize()
6
7# 删除集合所有索引
8db.col.dropIndexes()
9
10# 删除集合指定索引
11db.col.dropIndex("索引名称")
12
13

聚合

MongoDB中聚合(aggregate)主要用于处理数据,并返回计算后的数据结果
语法:

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

常用聚合表达式:
Mongodb基本操作

给TA打赏
共{{data.count}}人
人已打赏
安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

安全运维

设计模式的设计原则

2021-12-12 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索