1. 程式人生 > >Mongdb3.2.4(64bit) 資料庫匯入匯出欄位修改等操作

Mongdb3.2.4(64bit) 資料庫匯入匯出欄位修改等操作

mongodb資料備份和還原主要分為二種:一種是針對於庫(bson)的mongodump和mongorestore,一種是針對庫中表(json形式)的mongoexport和mongoimport。

一.資料匯入:

1.json資料通過mongoimport匯入資料庫的集合中

C:\Users\lenovo>mongoimport -d JD_comment -c JDComments F:jd_comment.json

2.bson資料通過mongorestore匯入資料庫中

C:\Users\lenovo> mongorestore -d JD_Bson   F:\comments.bson

3.csv資料通過mongoimport匯入資料庫中

C:\Users\lenovo>mongoimport -d database -c collection  -f filed --type csv  --file "F:\data.csv"

二.資料匯出:

1.匯出到csv檔案

C:\Users>mongoexport -d database -c collection -f filed --csv -o e:\jd.csv

-f 之後新增需要匯出的資料庫中的欄位

2.滿足欄位條件的資料,匯出資料庫:

C:\Users\lenovo>mongoexport -d JD_Comments -c comments -q{"buy_reason_5":1} -f c
ontent --csv -o f:\buyreason5.csv -q{“key”:value}

3.匯出到json檔案:

mongoexport -d JD_Comments -c new_comments -o F:/jd_newdata.json

4.匯出到bson檔案:

mongodump -d JD_Comments -c new_comments -o F:/jd_bson.bson

三.對資料庫中欄位進行修改:

1.修改欄位名字:
db.jd_slice_1.update({},{$rename:{"creationTime":"created_at"}},false,true)
2.刪除欄位:
db.jd_slice_1.update({},{$unset:{"creationTime":""}},false,true)

3.修改欄位值:

db.new_comments_test_10.update({},{$set:{"benchmark_13_16_score" : 0}},false,true)  #對全體資料操作

注:update()

db.collection.update( criteria, objNew, upsert, multi )    四個引數的說明如下: criteria: update的查詢條件,類似sql update查詢內where後面的 objNew: update的物件和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的 upsert: 這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。 multi: mongodb預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。

4.將舊欄位複製給新欄位:

db.getCollection('new_comments_test_10').find({}).forEach(function(obj){
    if(obj.created_at) {
        db.new_comments_test_10.update({_id:obj._id},{$set:{time_created:String(obj.created_at)}});
        }
    }
    );

5.修改某一個欄位型別:

eg.將int型資料(注意區分int32和int64)改成字串型別資料:

 db.collection.find({"field_name":{$type:16}}).forEach(function(x)

{

x.comment_id = String(x.comment_id);

db.new_comments_copy.save(x);

})

field_name 表示要修改的欄位,$type是固定寫法,後面的16需要對應一張對映轉換的表,如下圖。

Type Number Alias Notes
Double 1 “double”
String 2 “string”
Object 3 “object”
Array 4 “array”
Binary data 5 “binData”
Undefined 6 “undefined” Deprecated.
ObjectId 7 “objectId”
Boolean 8 “bool”
Date 9 “date”
Null 10 “null”
Regular Expression 11 “regex”
DBPointer 12 “dbPointer” Deprecated.
JavaScript 13 “javascript”
Symbol 14 “symbol” Deprecated.
JavaScript (with scope) 15 “javascriptWithScope”
32-bit integer 16 “int”
Timestamp 17 “timestamp”
64-bit integer 18 “long”
Decimal128 19 “decimal” New in version 3.4.
Min key -1 “minKey”
Max key 127 “maxKey”

四.檢視資料庫及collection的大小:

1.獲取mongodb中指定資料庫的大小:

1)use database:

2)db.stats()

2.獲取mongodb中指定資料庫中collection的大小:

db.collection.datasize()#資料大小

db.collection.storeageSize()#資料儲存空間大小。因為有壓縮注意兩者區別。