【Linux】MongoDB簡單介紹及常用命令分享

MongoDB介紹

MongoDB:介於關係數據庫和非關係數據庫之間,C++語言編寫,分佈式文件存儲,可擴展的高性能數據存儲,是一種NoSQL的數據庫。

NoSQL:非關係型的數據庫,Not Only SQL的縮寫,是對不同於傳統的關係型數據庫的數據庫管理系統的統稱,可用於超大規模數據的存儲。

數據存儲為一個Document,數據結構由鍵值(key=>value)對組成。MongoDB文檔類似於JSON對象,字段值可以包含其他文檔、數組及文檔數組,如下圖所示:

{

name:"zhagsan",

age:"25",

groups:["news","sports"]

}

特點

面向文檔存儲,操作簡單容易;

設置索引,實現快速排序;

本地或者網絡創建數據鏡像,優化MongoDB擴展性;

增加負載,分片處理;

豐富的查詢表達式,查詢指令使用JSON形式標記,可輕易查詢文檔中內嵌的對象及數組;

支持服務端腳本執行;

支持多種編程語言,如Ruby、Python、Java、C++、Php、C#等;

安裝簡單;

不支持表連接;

不支持事務操作;

文件存儲格式為 BSON;

下載地址

官網下載地址https://www.mongodb.com/download-center/community

概念解析

database:數據庫

collection:數據庫集合,對應關係型數據庫二維表。

document:數據文檔,對應關係型數據庫二維表中的每一行。

field:數據字段,對應關係型數據二維表中的每一列。

index:索引

primary key:主鍵,自動將_id設置為主鍵

{

"_id":"5dce64603ec49017b30d076a",

"nickname":"zhangsan",

"city":"Shanghai",

"age":"25",

"email":"[email protected]"

}

連接Database

MongoDB版本:3.4.7

<code>ServerAddress serverAddress = new ServerAddress("127.0.0.1", 27017);
List addrs = new ArrayList();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createScramSha1Credential("db_username", "db_database", "db_passwod".toCharArray());
List credentials = new ArrayList();
credentials.add(credential);
MongoClient mongoClient = new MongoClient(addrs, credentials);
MongoDatabase mongoDatabase = mongoClient.getDatabase("db_database");
/<code>

查詢Collection

<code>MongoCollection collection = mongoDatabase.getCollection("collection");
//去掉遊標時間,數據量太大時,易造成時間超時
FindIterable findIterable = collection.find().noCursorTimeout(true);
MongoCursor mongoCursor = findIterable.iterator();
while(mongoCursor.hasNext()){
Document doc = mongoCursor.next();
String value = (String)doc.get("field");
}/<code>

常用命令

mongo備份

mongodump備份數據庫

<code>./mongodump -h 127.0.0.1:27017 -u db_username -p db_password -d db_database -o /usr/local/backup/<code>

mongoexport備份csv collection

<code>./mongoexport -d db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password -c collection -o /usr/local/backup/collection.csv/<code>

mongoexport備份json collection

<code>./mongoexport -d db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password -c collection -o /usr/local/backup/collection.json/<code>

mongo恢復備份數據

mongorestore恢復備份的數據庫

<code>./mongorestore -h 127.0.0.1:27017 -u db_username -p db_password -d db_database /usr/local/backup/<code>

mongoimport恢復備份的json collection

<code>./mongoimport --db db_database --host 127.0.0.1:27017 --authenticationDatabase=db_database -u db_username -p db_password --file /usr/local/backup/collection.json/<code>

mongorestore恢復備份的bson collection

<code>./mongorestore -d db_database--host 127.0.0.1:27017 --authenticationDatabase=db_database-u db_username -p db_password /usr/local/backup/collection.bson/<code>

mongo查重

查重某一個field

<code>db.collection.aggregate([{ $group: {"_id": { "field" : "$field"},count:{$sum:1}}}, {$match:{count:{$gte:2}}}],{ allowDiskUse: true });/<code>

索引

mongo建立唯一索引

<code>db.collection.ensureIndex({field:1},{unique:true},{backgroud:true})/<code>

mongo建立索引

<code>db.collection.ensureIndex({field:1})/<code>

<code>db.collection.createIndex ({field:1})/<code>

mongo查看索引

<code>db.collection.getIndexes()/<code>

mongo刪除索引

<code>db.collection.dropIndex({"field":1})/<code>

過期時間

mongo設置過期時間

<code>db.collection.createIndex({'time': 1}, {expireAfterSeconds: 3600})/<code>

ok,以上就是【Linux】MongoDB簡單介紹及常用命令分享,看完記得轉發、點贊和收藏。想了解更多內容,請關注本小編,如果有錯誤,歡迎批評指正,感謝支持。

(雲渺書齋)


分享到:


相關文章: