这篇主要写一下比较少见的, 却很高效的mongo操作
一. mongo 数据的操作
1. 查看最新插入的一条数据(按照文档在磁盘上的存储顺序进行排序)
db.test.find().sort({$natural:-1})
2. 查询数据显示指定列(只显示_id字段)
db.test.find({}, {'_id':1})
3. 查询的表名包含- (例:test-a)
使用db.test-a.find()会报错
db.getCollection('test-a').find()
4. 查看reviews表共有多少不同商品名称(按照指定字段分组)
db.reviews.distinct("product_name")
5. 更新多条符合条件的数据(将subjects集合中所有id_status为run的数据更新为new)
db.subjects.update({'id_status':'run'},{$set:{'id_status':'new'}},{multi:true})
.....
6. mongo聚合查询
查询在指定时间段内的数据, 按照product_id分组, 并排序
db.reviews.aggregate([ {$match : {rate_date: {$lt: 10000000000000000, $gt: 0}}}, { $group: { _id: { product_id: "$product_id" }, count: { $sum: 1 } } }, {$sort:{count:-1}} ])
二. mongo系统的操作
1. 查看test数据库大小
use test
db.stats()
或
show dbs
2. 查看集合(表)test_a的大小
db.test_a.dataSize()
# db.collection.dataSize()
3. 查看为集合分配的空间大小, 包括未使用的空间
db.collection.storageSize()
4. 查看集合索引大小
db.collection.totalIndexSize()
5.查看集合的数据和索引的大小
db.collection.totalSize()
6. 查看正在执行的sql的进程
db.currentOp()
7. 杀死 关闭 正在执行的sql进程
db.killOp(id)
....
三. 数据库的导入和导出
1. 导出数据
1.导出为json格式文件:mongoexport -d <数据库名称> -c <collection名称> -o <json文件名称> 2.导出为csv格式文件:mongoexport -d <数据库名称> -c <collection名称> --csv - f <key字段(key字段如下图所示,字段之间用逗号分隔)> - o <csv文件名称>
2. 导入数据
1.导入json格式文件数据: mongoimport -d <数据库名称> -c <collection名称> --file <要导入的json文件名称> 2.导入csv格式文件数据:mongoimport -d <数据库名称> -c <collection名称> --type csv --headerline --file <csv文件名称>
例:
# 导出json文件 mongoexport -d dbName -c collecTionName -o ./collecTionName.json # 导出collecTionName表中id_status为new的数据 mongoexport -d dbName -c collecTionName -q"{'id_status':'new'}" -o ./collecTionName.json # 导入json文件,并更新数据(以文件中的数据为准) mongoimport -d dbName -c collecTionName --mode upsert --file ./collecTionName.json mongoimport -d dbName -c collecTionName --upsert --file ./collecTionName.json
...
好了 , 今天到这里就差不多了 , 以后再遇见高级的用法, 会不断更新的, 欢迎关注哦