查詢操作
進入mongo的admin數(shù)據庫
[mongod@MongoDB ~]# mongo 10.0.0.152/admin
MongoDB shell version: 3.2.8
connecting to: 10.0.0.152/admin
查看當前數(shù)據庫名
> db
admin
查看當前數(shù)據庫版本
> db.version()
3.2.8
查看所有數(shù)據庫
> show dbs;
clsn 0.000GB
local 0.000GB
test 0.000GB
> show databases;
clsn 0.000GB
local 0.000GB
test 0.000GB
切換數(shù)據庫(創(chuàng)庫)
> use test;
switched to db test
顯示當前數(shù)據庫
*1*
> db
test
*2*
> db.getName()
test
查看clsn數(shù)據庫當前狀態(tài)
> use clsn;
> db.stats()
{
"db" : "clsn",
"collections" : 1,
"objects" : 10000,
"avgObjSize" : 80,
"dataSize" : 800000,
"storageSize" : 258048,
"numExtents" : 0,
"indexes" : 1,
"indexSize" : 94208,
"ok" : 1
}
查看當前數(shù)據庫的連接機器地址
> db.getMongo()
connection to 127.0.0.1
數(shù)據管理(增刪該查)
庫管理
創(chuàng)建數(shù)據庫
> use clsn;
說明:
當use的時候,系統(tǒng)就會自動創(chuàng)建一個數(shù)據庫劲绪。
如果use之后沒有創(chuàng)建任何集合。系統(tǒng)就會不承認這個數(shù)據庫扯饶。
刪除數(shù)據庫:
> show dbs;
clsn 0.000GB
local 0.000GB
test 0.000GB
> use clsn
switched to db clsn
> db.dropDatabase()
{ "dropped" : "clsn", "ok" : 1 }
說明:
如果沒有選擇任何數(shù)據庫悲柱,會刪除默認的 test 數(shù)據庫
集合操作
創(chuàng)建集合
方法一:
> use clsn;
switched to db clsn
> db.createCollection('a')
{ "ok" : 1 }
> db.createCollection('b')
{ "ok" : 1 }
方法二:
當插入一個文檔的時候民晒,一個集合就會自動創(chuàng)建。
> use clsn;
switched to db clsn
> db.c.insert({name:'clsn'});
WriteResult({ "nInserted" : 1 })
> db.c.insert({url:'http://blog.nmtui.com'});
WriteResult({ "nInserted" : 1 })
查看當前數(shù)據下的所有集合
> show collections;
a
b
> db.getCollectionNames()
[ "a", "b" ]
重命名集合
> db.c.renameCollection("clsn")
{ "ok" : 1 }
> db.getCollectionNames()
[ "a", "b", "clsn" ]
刪除合集
> db.a.drop()
true
> db.getCollectionNames()
[ "b", "clsn" ]
查看合集里的內容
> db.c.find()
{ "_id" : ObjectId("5a4cbcea83ec78b7bea904f8"), "name" : "clsn" }
{ "_id" : ObjectId("5a4cbcfc83ec78b7bea904f9"), "url" : "http://blog.nmtui.com" }
刪除合集
> db.a.drop()
true
> db.getCollectionNames()
[ "b", "clsn" ]
合集的數(shù)據操作
1.插入數(shù)據
> db.log.insert({"uid":100})
WriteResult({ "nInserted" : 1 })
> for(i=0;i<10000;i++){ db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()});
WriteResult({ "nInserted" : 1 })
2.查詢集合中的查詢所有記錄
> db.log.find()
注:默認每頁顯示20條記錄师妙,當顯示不下的的情況下诵肛,可以用it迭代命令查詢下一頁數(shù)據。
對默認顯示記錄數(shù)進行設置
> DBQuery.shellBatchSize=50; # 每頁顯示50條記錄
> db.log.findOne() # 查看第1條記錄
> db.log.count() # 查詢總的記錄數(shù)
> db.log.find({uid:1000}); # 查詢UUID為1000的數(shù)據
3.刪除集合中的記錄數(shù)
> db.log.distinct("name") # 查詢去掉當前集合中某列的重復數(shù)據
[ "mongodb" ]
> db.log.remove({}) # 刪除集合中所有記錄
WriteResult({ "nRemoved" : 10000 })
> db.log.distinct("name")
[ ]
4.對集合中的某條數(shù)據進行修改默穴?怔檩??
查看集合存儲信息
> db.log.stats() # 查看數(shù)據狀態(tài)
> db.log.dataSize() # 集合中數(shù)據的原始大小
> db.log.totalIndexSize() # 集合中索引數(shù)據的原始大小
> db.log.totalSize() # 集合中索引+數(shù)據壓縮存儲之后的大小
> db.log.storageSize() # 集合中數(shù)據壓縮存儲的大小
pretty()使用
> db.log.find({uid:1000}).pretty()
{
"_id" : ObjectId("5a4c5c0bdf067ab57602f7c2"),
"uid" : 1000,
"name" : "mongodb",
"age" : 6,
"date" : ISODate("2018-01-03T04:28:59.343Z")
}