Mongdb3.2.4(64bit) 数据库导入导出字段修改等操作
2017-04-16 16:52
260 查看
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需要对应一张映射转换的表,如下图。
四.查看数据库及collection的大小:
1.获取mongodb中指定数据库的大小:
1)use database:
2)db.stats()
2.获取mongodb中指定数据库中collection的大小:
db.collection.datasize()#数据大小
db.collection.storeageSize()#数据存储空间大小。因为有压缩注意两者区别。
一.数据导入:
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” |
1.获取mongodb中指定数据库的大小:
1)use database:
2)db.stats()
2.获取mongodb中指定数据库中collection的大小:
db.collection.datasize()#数据大小
db.collection.storeageSize()#数据存储空间大小。因为有压缩注意两者区别。
相关文章推荐
- POSTGRESQL 创建表结构、修改字段、导入导出数据库(支持CSV)
- Mysql一些导入导出数据库,添加修改字段命令
- Mysql一些导入导出数据库,添加修改字段命令
- 6.(Mysql数据管理相关)连接MYSQL,修改密码,增加新用户,数据库相关命令,表操作相关命令,数据相关命令,数据库sql导入和导出,备份数据库,查看不到mysql数据库的解决办法
- 数据库实用技巧操作(什么导入呀、导出呀都有了)
- MySQL操作及数据库导入导出
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- 如何解决数据库中的字符型字段值中包含'0A'时,导出的文件用EXECEL打开时行数变多或者将结果导入数据库出错
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- PostgreSQL 数据库导入导出操作
- TX Text Control文字处理教程(12)MS Word中字段的导入导出操作
- 第四步 使用shell操作数据库,导入分析并将结果导出成txt文件
- linux中导出导入数据库等操作
- 对orcl数据库远程操作,及其导入导出
- SQL 数据的导入导出,对远程(MSsql,OracleAccess,)数据库的操作以及读取Excel,txt文件中的数据
- linux 下 mysql 修改密码 修改 字符集 乱码 数据库 导入 导出 添加远程访问
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- 利用SQL语句进行添加、删除、修改字段,表与字段的基本操作,数据库备份等
- sql操作数据库修改字段中的某些字串