MongoDB常用基本操作

1.mongodb 默认存在的库

show databases
admin 0.000GB
config 0.000GB
local 0.000GB

1.1 命令种类

数据库对象(库(database),表(collection),行(document))

db.命令:
DB级别命令
db 当前在的库
db.[TAB] 类似于linux中的tab功能
db.help() db级别的命令使用帮助

collection级别操作:
db.Collection_name.xxx

document级别操作:
db.t1.insert()

复制集有关(replication set):
rs.

分片集群(sharding cluster)
sh.

1.2、帮助
help
KEYWORDS.help()
KEYWORDS.[TAB]

1.3、常用操作

----查看当前db版本
test> db.version()

----显示当前数据库

test> db
test

db.getName()
test

----查询所有数据库
test> show dbs
---- 切换数据库

use local
switched to db local

---- 查看所有的collection
show tables;

–-- 显示当前数据库状态
test> use local
switched to db local

local> db.stats()

----查看当前数据库的连接机器地址

db.getMongo()
connection to 127.0.0.1
指定数据库进行连接
默认连接本机test数据库

2、mongodb对象操作:

mongo mysql
库 --------> 库
集合 -----> 表
文档 -----> 数据行

2.1 库的操作:

– 创建数据库:
当use的时候,系统就会自动创建一个数据库。
如果use之后没有创建任何集合。
系统就会删除这个数据库。

– 删除数据库
如果没有选择任何数据库,会删除默认的test数据库
//删除test数据库

test> show dbs
local 0.000GB
test 0.000GB

test> use test
switched to db test

test> db.dropDatabase()
{ “dropped” : “test”, “ok” : 1 }

2.2、集合的操作:
创建集合
方法1:
admin> use app
switched to db app
app> db.createCollection(‘a’)
{ “ok” : 1 }
app> db.createCollection(‘b’)
{ “ok” : 1 }

show collections //查看当前数据下的所有集合
a b

db.getCollectionNames()
[ “a”, “b” ]

方法2:当插入一个文档的时候,一个集合就会自动创建。

use oldboy
db.oldguo.insert({id : “1021” ,name : “zhssn” ,age : “22” ,gender : “female”,address : “sz”})

db.oldguo.find({id:“101”})
{ “_id” : ObjectId(“5d36b8b6e62adeeaf0de00dc”), “id” : “101”, “name” : “zhangsan”, “age” : “18”, “gender” : “male” }

查询数据:

db.oldguo.find({id:“101”}).pretty()
{
“_id” : ObjectId(“5d36b8b6e62adeeaf0de00dc”),
“id” : “101”,
“name” : “zhangsan”,
“age” : “18”,
“gender” : “male”
}
db.oldguo.find().pretty()
{
“_id” : ObjectId(“5d36b8b6e62adeeaf0de00dc”),
“id” : “101”,
“name” : “zhangsan”,
“age” : “18”,
“gender” : “male”
}
{
“_id” : ObjectId(“5d36b8eae62adeeaf0de00dd”),
“id” : “1021”,
“name” : “zhssn”,
“age” : “22”,
“gender” : “female”,
“address” : “sz”
}
{
“_id” : ObjectId(“5d36b913e62adeeaf0de00de”),
“name” : “ls”,
“address” : “bj”,
“telnum” : “110”
}

删除集合
app> use app
switched to db app
app> db.log.drop() //删除集合

– 重命名集合
//把log改名为log1
app> db.log.renameCollection(“log1”)
{ “ok” : 1 }
app> show collections
a b c
log1
app

批量插入数据

for(i=0;i<100;i++){db.log.insert({“uid”:i,“name”:"mongodb+"i,“age”:6,“date”:new
Date()})}

2.3、Mongodb数据查询语句:

– 查询集合中的记录数
app> db.log.find() //查询所有记录

注:默认每页显示20条记录,当显示不下的的情况下,可以用it迭代命令查询下一页数据。
设置每页显示数据的大小:

DBQuery.shellBatchSize=50; //每页显示50条记录

app> db.log.findOne() //查看第1条记录
app> db.log.count() //查询总的记录数

– 删除集合中的记录数
app> db.log.remove({}) //删除集合中所有记录

db.log.distinct(“name”) //查询去掉当前集合中某列的重复数据

– 查看集合存储信息
app> db.log.stats()
app> db.log.dataSize() //集合中数据的原始大小
app> db.log.totalIndexSize() //集合中索引数据的原始大小
app> db.log.totalSize() //集合中索引+数据压缩存储之后的大小
app> db.log.storageSize() //集合中数据压缩存储的大小

3、用户管理

注意:
验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
对于管理员用户,必须在admin下创建.

1.建用户时,use到的库,就是此用户的验证库
2. 登录时,必须明确指定验证库才能登录
3. 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
4. 如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.

use admin
db.createUser
{
user: “name”,
pwd: “cleartext password”,
roles: [
{ role: “role”,
db: “database” } | “role”,

]
}

基本语法说明:
user:用户名
pwd:密码
roles:
role:角色名
db:作用对象
role:root, readWrite,read

验证数据库:
mongo -u oldboy -p 123 192.168.200.51/oldboy

用户管理例子:

1.创建超级管理员:管理所有数据库(必须use admin再去创建)
$ mongo
use admin
db.createUser(
{
user: “root”,
pwd: “root123”,
roles: [ { role: “root”, db: “admin” } ]
}
)

验证用户
db.auth(‘root’,‘root123’)

配置文件中,加入以下配置
security:
authorization: enabled

重启mongodb
mongod -f /mongodb/conf/mongo.conf --shutdown
mongod -f /mongodb/conf/mongo.conf

登录验证
mongo -uroot -proot123 admin
mongo -uroot -proot123 192.168.200.51/admin

或者
mongo
use admin
db.auth(‘root’,‘root123’)

查看用户:
use admin
db.system.users.find().pretty()

2、创建库管理用户

use app

db.createUser(
{
user: “admin”,
pwd: “admin”,
roles: [ { role: “dbAdmin”, db: “app” } ]
}
)

db.auth(‘admin’,‘admin’)

登录测试
mongo -uadmin -padmin 192.168.200.51/app

3、创建对app数据库,读、写权限的用户app01

(1)超级管理员用户登陆
mongo -uroot -proot123 admin

(2)选择一个验证库
use app

(3)创建用户
db.createUser(
{
user: “app01”,
pwd: “app01”,
roles: [ { role: “readWrite” , db: “app” } ]
}
)
验证:
mongo -uapp01 -papp01 192.168.200.51/app

4、创建app数据库读写权限的用户并对test数据库具有读权限:
mongo -uroot -proot123 192.168.200.51/admin
use app
db.createUser(
{
user: “app03”,
pwd: “app03”,
roles: [ { role: “readWrite”, db: “app” },
{ role: “read”, db: “test” }]})

5、查询mongodb中的用户信息
mongo -uroot -proot123 192.168.200.51/admin
db.system.users.find().pretty()

{
“_id” : “admin.root”,
“user” : “root”,
“db” : “admin”,
“credentials” : {
“SCRAM-SHA-1” : {
“iterationCount” : 10000,
“salt” : “HsSHIKBQyMnFEzA/PSURYA==”,
“storedKey” : “dbOoQserGa/fB+JQyLqr1yXQZBM=”,
“serverKey” : “h+b/vARfWp6cmDquUN6bJo4whdc=”
}
},
“roles” : [
{
“role” : “root”,
“db” : “admin”
}
]
}

6、删除用户(root身份登录,use到验证库)

删除用户
show users 查看用户
#mongo -uroot -proot123 192.168.200.51/admin
use app
db.dropUser(“app01”)

猜你喜欢

转载自blog.csdn.net/qq_44788449/article/details/107029748