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" } ]
  }
)
posted @ 2023-05-28 09:56  sjmuvx  阅读(33)  评论(0编辑  收藏  举报