MongoDB的介绍和操作

本文详细介绍MongoDB的基础概念,包括集合、文档、数据字段等,并深入讲解常用操作命令,如插入、查询、更新和删除数据,以及创建索引和聚合等高级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongodb的基本概念有集合collection(表)、文档document(行)、数据字段/域field、索引index、mongodb不支持表连接、而且mongodb主键primary key会自动将_id设置为主键。

接下来就讲解一下命令:

1、mongo 可以直接进入mongodb shell操作界面

2、show dbs 查看mongodb的数据库,db是mongodb默认的数据库,存储在db目录下

3、use 数据库名称,比如use local,就是切换到数据库local,这个use和mysql的操作语法是一样的

4、db,可以查看当前所在的数据库名称

5、文档就是一组键值对key-value,也就是BSON,JSON格式。

类似

{"site":"www.runoob.com", "name":"CHEN"}

集合就是MongoDB的文档组,类似表格,没有固定的结构。所以可以插入不同格式,不同数据类型的数据。但是通常我们插入的数据,都是有一定关联性的。

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"CHEN","num":5}

6、插入数据

db.runoob.insert({"name":"chendang"})

创建集合并插入数据

也可以创建一个对象docu={"school":"xiamenyizhong","sex":"boy"},然后采用save()或者insert()保存。

7、删除数据库zznj,首先要切换到zznj数据库,use zznj,然后进行删除

8、创建集合,集合名为test,也就是表格

db.createCollection("test")

删除集合

查询所有集合 show tables

删除集合 db.test.drop()

查询集合里的数据 db.test.find(),语法:db.集合名.find()

9、文档的结构和JSON基本一样,BJSON是json的一种二进制形式的存储格式,简称Binary JSON。

10、更新集合里的文档

db.test.update({"school":"xiamenyizhong"},{"school":"tonganyizhong"},false,false)

第一个参数是条件,相当于where;第二个参数是要修改的数据;第三个参数是upsert,默认false,代表如果不存在符合条件的数据是否要插入;第四个参数默认false,代表是否只更新第一条查询结果,true则全部更新,因为可能查询有多条。

 

单条更新,可以不加$set(一些更新的操作符(如$,$inc...)等),多条就要加,不然会出错

11、保存db.test.save(),如果_id一样的话,效果也是直接替换。

12、删除文档db.test.remove({"age":27}),删除age=27的数据。如果是db.test.remove({"age":27},1),加参数1,表示

只删除查询结果的第一条,不加1,默认删除全部查询结果。

13、db.test.find(),查询find括号里可以加添加,比如截图:

14、where 大小比较

db.test.find({"age":{$gt:20}}) 查看test集合中age大于等于20的文档 where age>20

db.test.find({"age":{$lt:20}}) => where age<20

db.test.find({"age":{$ge:20}}) => where age>=20

db.test.find({"age":{$le:20}}) => where age<=20

db.test.find({"age":{$ne:20}})=>where age!=20

15、And 查询

db.test.find({"age":21,"name":"chendang"}) 查询出age为21和name为chendag的文档

16、OR查询

db.test.find({$or[{"age":21},{"age":2}]})

17、$type根据域的类型作为查询条件

db.user.find({"name",{$type:'string'}}) 查询name域的值为string类型的文档,也可以根据类型对应的值,填值查询。

类型对应值查询http://www.runoob.com/mongodb/mongodb-operators-type.html

18、limit根据查询结果限制条数

db.user.find().limit(2)

19、skip(1)跳过查询结果的第一条

db.user.find().skip(1)

20、sort排序,1升序,-1降序

db.user.find().sort({"age",-1})

skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。

21、创建索引

db.user.createIndex({"age":1}) 创建索引age,1表示按升序创建,-1表示按降序来创建

22、MongoDB的聚合,就是那些统计函数

23、MongoDB复制,复制就是先数据同步到多台服务器上,提供数据冗余备份,复制允许从硬件故障中断恢复数据。

还可以进行分片,服务器运行一定的时间,存储容量不足,就需要在多台机器上,分割数据,才能存储更多的数据。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值