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()#資料儲存空間大小。因為有壓縮注意兩者區別。