MongoDB基本操作记录
连接Mongo:mongo --host 127.0.0.1 --port 27017 -u root -p 123456
显示数据库列表:show dbs
选择数据库:use CX_tb
显示所有表名:db.getCollectionNames()
删表:db.xxx.drop()
显示帮助:db.xxx.help()
插入一条数据:db.xxx.insert({"id" : "1", "add_time" : "2023-05-28"})
删除数据:db.xxx.remove({"add_time" : "2023-05-28"}, {justOne : false})
。如果只想删除第一条匹配的数据,将justOne置为true即可。
显示一条数据:db.xxx.findOne()
显示20条数据:db.xxx.find()
显示索引:db.xxx.getIndexes()
创建索引:db.xxx.createIndex({"id" : 1, "add_time" : -1})
删除索引:db.xxx.dropIndex({"id" : 1, "add_time" : -1})
带过滤条件的显示数据:db.spider.find({"addtime" : { "$gte" : ISODate("2022-11-09T03:41:01Z"), "$lt" : ISODate("2022-11-10T02:41:01Z") }})
统计数量:db.xxx.count()
Explain:db.xxx.explain("queryPlanner").find({"id":"4"}).sort({"col1": -1, "col2": -1})
最大值/最小值:db.xxx.find({}).sort({"_id":-1}).limit(1)
。-1表示降序,1表示升序。
数据导出:
mongodump --forceTableScan --db CX_tb --collection xxx --archive="xxx.archive"
。会保留索引数据;如果备份的数据大于系统内存,备份时容易出现错误。mongoexport --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d CX_tb -c xxx -q '{"_id": {"$gte":"000000", "$lt": "100000"}}' -o ~/data/xxx1.json
。不会保留索引,所以恢复的时候需要建立索引;导出数据量过大时,可以通过这种方式分批导出。
数据导入:
mongorestore --archive="xxx.archive" --nsFrom='CX_tb.xxx' --nsTo='CX_tb.xxx'
mongoimport --db CX_tb --collection xxx --file ~/data/xxx1.json