MongoDB常用命令

MongoDB的基本操作

Mongodb中关键字种类:

db(数据库实例级别)

         db本身

             db.connection 数据库下的集合信息

                 db.collection.xxx(

rs(复制集级别)

 

sh(分片级别)

rs.status() #副本集状态,一个primary,其它SECONDARY。primary是主,只有primary能写入,从库无法插入数据

rs.config() ##获取配置

rs.slaveOk() #SECONDARY需要声明是slave才能查看数据

 

查询操作

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

[mongod@MongoDB ~]$ mongo 10.0.0.152/admin MongoDB shell version: 3.2.8 connecting to: 10.0.0.152/admin

> db admin

查看当前数据库版本

> db.version()

 

切换数据库

> use test; switched to db test

显示当前数据库

> db test > db.getName() test

查询所有数据库

> show dbs; smile 0.000GB local 0.000GB test 0.000GB > show databases; smile 0.000GB local 0.000GB test 0.000GB

查看smile数据库当前状态

> use smile;

> db.stats() { "db" : "smile", "collections" : 1, "objects" : 10000, "avgObjSize" : 80, "dataSize" : 800000, "storageSize" : 258048, "numExtents" : 0, "indexes" : 1, "indexSize" : 94208, "ok" : 1 }

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

> db.getMongo() connection to 127.0.0.1

1.5.2 数据管理

创建数据库

> use smile;

说明:

创建数据库:

use的时候,系统就会自动创建一个数据库。

如果use之后没有创建任何集合。系统就会删除这个数据库。

删除数据库

> show dbs; smile 0.000GB local 0.000GB test 0.000GB

> use smile switched to db smile

> db.dropDatabase() { "dropped" : "smile", "ok" : 1 }

说明:

删除数据库:

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

创建集合

   方法一:

> use smile; switched to db smile

> db.createCollection('a') { "ok" : 1 }

> db.createCollection('b') { "ok" : 1 }

   查看当前数据下的所有集合

> show collections; a b

> db.getCollectionNames() [ "a", "b" ]

方法二:

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

> use smile; switched to db smile

> db.c.insert({name:'smile'}); WriteResult({ "nInserted" : 1 })

> db.c.insert({url:'http://blog.nmtui.com'}); WriteResult({ "nInserted" : 1 })

   查看创建的合集

> db.getCollectionNames() [ "a", "b", "c" ]

   查看合集里的内容

> db.c.find() { "_id" : ObjectId("5a4cbcea83ec78b7bea904f8"), "name" : "smile" } { "_id" : ObjectId("5a4cbcfc83ec78b7bea904f9"), "url" : "http://blog.nmtui.com" }

重命名集合

> db.c.renameCollection("smile") { "ok" : 1 }

> db.getCollectionNames() [ "a", "b", "smile" ]

   删除合集

> db.a.drop() true

> db.getCollectionNames() [ "b", "smile" ]

   插入1w行数据

> for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()}); } WriteResult({ "nInserted" : 1 })

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

> db.log.find()

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

> DBQuery.shellBatchSize=50; # 每页显示50条记录 50 app> db.log.findOne() # 查看第1条记录 app> db.log.count() # 查询总的记录数 app> db.log.find({uid:1000}); # 查询UUID1000的数据

删除集合中的记录数

> db.log.distinct("name") # 查询去掉当前集合中某列的重复数据 [ "mongodb" ]

> db.log.remove({}) # 删除集合中所有记录

WriteResult({ "nRemoved" : }) > db.log.distinct("name"10000) [ ]

查看集合存储信息

> db.log.stats() # 查看数据状态

> db.log.dataSize() # 集合中数据的原始大小

> db.log.totalIndexSize() # 集合中索引数据的原始大小

> db.log.totalSize() # 集合中索引+数据压缩存储之后的大小

> db.log.storageSize() # 集合中数据压缩存储的大小

pretty()使用

> db.log.find({uid:1000}).pretty() { "_id" : ObjectId("5a4c5c0bdf067ab57602f7c2"), "uid" : 1000, "name" : "mongodb", "age" : 6, "date" : ISODate("2018-01-03T04:28:59.343Z") }

 

posted @ 2019-06-19 21:53  --smile  阅读(19112)  评论(1编辑  收藏  举报