MongoDB基本操作记录
MongoDB基本操作记录
连接Mongo:mongo --host 127.0.0.1 --port 27017 -u root -p
。新建的Mongo可以用另一种方式连接:mongo --host 127.0.0.1 --port 27017
显示数据库列表:show dbs
如果数据库不存在,则创建数据库,否则切换到指定数据库:use xxx
显示所有表名:db.getCollectionNames()
建表:db.createCollection("xxx")
删表: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表示升序
删除字段:db.xxx.update({}, {$unset: {'type':''}}, false, true)
。表示删除type字段。解释:db.collection.update(criteria, objNew, upsert, multi),其中criteria表示查询条件,objNew表示update对象和一些更新操作符,upser表示如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false不插入。multi默认是false,只更新找到的第一条记录,如果为true,把按条件查询出来的记录全部更新
数据导出:
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
添加用户:
use admin
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix