MongoDB基本操作

1、查看数据库信息

在客户端指定数据库进行连接:(默认连接本机test数据库)

[root@localhost conf]# mongo 127.0.0.1/admin

查看数据库版本

1
2
> db.version()
3.6.11

查看所有数据库

1
2
3
4
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

切换数据库

1
2
> use test;
switched to db test

显示当前数据库

1
2
3
4
> db
test
> db.getName()
test

查看当前数据库状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
> db.stats();
{
"db" : "test",
"collections" : 0,
"views" : 0,
"objects" : 0,
"avgObjSize" : 0,
"dataSize" : 0,
"storageSize" : 0,
"numExtents" : 0,
"indexes" : 0,
"indexSize" : 0,
"fileSize" : 0,
"fsUsedSize" : 0,
"fsTotalSize" : 0,
"ok" : 1
}

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

1
2
> db.getMongo();
connection to 127.0.0.1:27017

2、数据管理

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

1
2
> use demo;
switched to db demo

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

1
2
> db.dropDatabase()
{ "ok" : 1 }

创建集合

1
2
3
4
> db.createCollection('h');
{ "ok" : 1 }
> db.createCollection('u');
{ "ok" : 1 }

显示集合

1
2
3
4
5
> show collections;
h
u
> db.getCollectionNames()
[ "h", "u" ]

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

1
2
3
4
> db.c.insert({name:'hu'});
WriteResult({ "nInserted" : 1 })
> db.c.insert({ming:'yun'});
WriteResult({ "nInserted" : 1 })

查看创建的集合

1
2
> db.getCollectionNames()
[ "c", "h", "u" ]

查看集合内容

1
2
3
> db.c.find()
{ "_id" : ObjectId("5c84a575435a08991662e280"), "name" : "hu" }
{ "_id" : ObjectId("5c84a58d435a08991662e281"), "ming" : "yun" }

重命名集合

1
2
3
4
> db.c.renameCollection('shun');
{ "ok" : 1 }
> db.getCollectionNames()
[ "h", "shun", "u" ]

删除集合

1
2
3
4
> db.h.drop();
true
> db.getCollectionNames()
[ "shun", "u" ]

批量插入数据到集合

1
2
> for(i=0;i<1000;i++){db.h.insert({'id':i,'name':'huyun','age':100,'date':new Date()});}
WriteResult({ "nInserted" : 1 })

查询集合中的查询所有记录

1
> db.h.find()

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

每页显示50条

1
2
> DBQuery.shellBatchSize=50;
50

查询第一条

1
2
3
4
5
6
7
8
9
10
> db.h.findOne()
{
"_id" : ObjectId("5c84a69f435a08991662e282"),
"id" : 1,
"name" : "huyun",
"age" : 100,
"date" : ISODate("2019-03-10T05:54:39.904Z")
}
> db.h.count()
1000

按照id查找

1
2
3
4
5
> db.h.find({id:100});
{ "_id" : ObjectId("5c84a8a8435a08991662e6ce"), "id" : 100, "name" : "huyun", "age" : 100, "date" : ISODate("2019-03-10T06:03:20.283Z") }

> db.h.distinct("name") # 查询去掉当前集合中某列的重复数据
> db.h.remove({}) # 删除集合中所有记录

查看集合存储信息

1
2
3
4
5
> db.h.stats()          # 查看数据状态
> db.h.dataSize() # 集合中数据的原始大小
> db.h.totalIndexSize() # 集合中索引数据的原始大小
> db.h.totalSize() # 集合中索引+数据压缩存储之后的大小
> db.h.storageSize() # 集合中数据压缩存储的大小