0、 mongodb 默认存在的库

test库: 登录时默认存在的库 admin库: 系统预留库,mongodb系统管理库 local库: 本地预留库,存储关键日志

1 、命令种类 数据库对象(库(database),表(collection),数据行(document))

db.命令:

DB级别命令

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

collection级别操作 db.Collection_name.xxx

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

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

分片集群(sharding cluster) sh.

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

show show databases show dbs show tables show collections use db

db.help() db.a.help() rs.help() sh.help()

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数据库


4、mongodb对象操作:

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

4.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 }

4.2 集合及文档操作: 创建集合 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" ]

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

use oldboy db.test.insert({name:"zhangsan"}) db.stu.insert({id:101,name:"zhangsan",age:20,gender:"m"}) show tables; db.stu.insert({id:102,name:"lisi"}) db.stu.insert({a:"b",c:"d"}) db.stu.insert({a:1,c:2})

查询数据:

db.stu.find({}).pretty() db.stu.find({id:101}).pretty(); { "_id" : ObjectId("5b470168cfdebc16a5a82a97"), "id" : 101, "name" : "zhangsan", "age" : 20, "gender" : "m" }

删除集合 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<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()})}

Mongodb数据查询语句:

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

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

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

app> db.log.find().pretty() //查询所有记录,并格式化输出 app> db.log.findOne() //查看第1条记录 app> db.log.count() //查询总的记录数

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

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