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() //集合中数据压缩存储的大小