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

compass mongodb 设置主题 mongodb设置主键_数据

接下来就讲解一下命令:

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

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

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

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

compass mongodb 设置主题 mongodb设置主键_数据库_02

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"})

compass mongodb 设置主题 mongodb设置主键_数据_03

创建集合并插入数据

compass mongodb 设置主题 mongodb设置主键_mongodb_04

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

compass mongodb 设置主题 mongodb设置主键_mongodb_05

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

compass mongodb 设置主题 mongodb设置主键_数据_06

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

db.createCollection("test")

删除集合

查询所有集合 show tables

删除集合 db.test.drop()

compass mongodb 设置主题 mongodb设置主键_数据_07

查询集合里的数据 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则全部更新,因为可能查询有多条。

compass mongodb 设置主题 mongodb设置主键_数据_08

compass mongodb 设置主题 mongodb设置主键_mongodb_09

 

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

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

compass mongodb 设置主题 mongodb设置主键_mongodb_10

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

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

compass mongodb 设置主题 mongodb设置主键_数据库_11

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

compass mongodb 设置主题 mongodb设置主键_数据_12

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

compass mongodb 设置主题 mongodb设置主键_数据库_13

15、And 查询

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

compass mongodb 设置主题 mongodb设置主键_数据库_14

16、OR查询

compass mongodb 设置主题 mongodb设置主键_数据_15

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

compass mongodb 设置主题 mongodb设置主键_数据库_16

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

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

compass mongodb 设置主题 mongodb设置主键_数据库_17

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

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

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

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

compass mongodb 设置主题 mongodb设置主键_数据库_18

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

21、创建索引

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

compass mongodb 设置主题 mongodb设置主键_数据_19

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

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

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