欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MongoDB

程序员文章站 2024-01-22 21:52:46
...

一、基本概念

1、MongoDB与关系数据库的概念对比:

MongoDB

2、连接Mongodb

mongodb的使用方式是客户服务器模式,即使用一个客户端连接mongodb数据库(服务端)。

mongodb://[username:aaa@qq.com]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

mongodb:// 固定前缀
username:账号,可不填
password:密码,可不填
host:主机名或ip地址,只有host主机名为必填项。
port:端口,可不填,默认27017
/database:连接某一个数据库
?options:连接参数,key/value对

MongoDB

也可以在MongoDB安装目录下的bin启动mongo.exe,前提要先启动服务端。


二、MongoDB常用命令

1、show dbs;列出所有数据库。

2、use DataBase_Name;创建数据库,如果已存在则切换到该数据库,否则创建,新创建的数据库不显示,最少显示一个集合的数据库。

3、db.dropDatabase();删除数据库,先切换到数据库,然后在删除。

4、db;当前在哪个数据库。


三、集合

集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。

1、db.createCollection(name,options);创建name的集合,options参数可以省略。

2、db.collection.drop();删除collection集合。


四、文档

1、db.collection.insert(doc);在collection集合中插入文档doc,MongoDB会自动创建_id,类型是ObjectId与关系型数据库中的主键primary类似。

doc = {"empName":"张三","empAge":18,"empGender":"女"}
db.emps.insert(doc)

2、db.collection.remove();删除collection文档。remove函数里可以添加参数,例子如下:将会删除性别为女的文档。

db.emps.remove({"empGender":"女"})

3、db.collection.update(query,update,options);更新语法;

query:查询条件,相当于sql语句的where
update:更新文档内容
options:选项,可省略

4、$set修改器,使用$set修改指定要更新的key,key不存在则去创建,存在则去更新。

db.users.update({"_id":1},{$set:{"age":18,"name":"test01"}},{multi:true})
将符合条件,_id为1的所有文档改成年龄18,姓名test01
multi:false代表更新第一个匹配到的文档
       true代表将所有匹配到的文档全部更新

5、db.collection.find(query,projection);query:查询条件,可不填;projection:投影查询key,可不填;

6、db.collection.find();查询collection集合中的所有文档;

7、db.collection.find({"name":"test"});查询collection集合中所有name为test的文档;

8、db.collection.find({"name":"test",{name:1,age:1,_id:0}});查询name为test的文档,只显示name和age,_id不显示,如果不写_id:0,则会自动显示_id,其余字段除非设置成1,否则不显示。


五、用户管理

1、创建用户

use admin
db.createUser(
     {
       user:"root",
       pwd:"root",
       roles:[{role:"root",db:"admin"}]
     }
  )


内置角色如下:
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3 . 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
6. 超级用户角色:root

2、show users;查询当前库下所有用户

3、db.dropUser("用户名");删除用户

4、db.changeUserPassword("username","newPwd");修改密码