1. MongoDB简介
MongoDB是一个高性能、面向文档的NoSQL数据库。它存储数据的格式是BSON(Binary JSON)文档格式,具备高可扩展性和高可用性。相较于传统关系型数据库,它采用了集合和文档的概念,适合存储半结构化的数据,在许多项目中,都会优先考虑使用MongoDB作为数据存储。
2. mongo shell常用操作方法
2.1 连接MongoDB服务
连接本地MongoDB服务,使用默认端口号(27017)。
mongo
指定MongoDB服务和端口号。
mongo --host HOST --port PORT
2.2 查询集合中的数据
指定数据库和集合名称,查询集合中的所有数据。
use DATABASE_NAME
db.COLLECTION_NAME.find()
指定查询条件,查询符合条件的数据。
db.COLLECTION_NAME.find({ FIELD: VALUE })
其中,FIELD是字段名,VALUE是需要查找的值。
查询多个条件组合的数据。
db.COLLECTION_NAME.find({ $and: [{ FIELD1: VALUE1 }, { FIELD2: VALUE2 }] })
其中,$and表示多个条件组合查询,将多个查询条件使用$and组装起来。
2.3 向集合中插入数据
向集合中插入单条数据。
db.COLLECTION_NAME.insertOne({ FIELD1: VALUE1, FIELD2: VALUE2 })
向集合中插入多条数据。
db.COLLECTION_NAME.insertMany([{ FIELD1: VALUE1, FIELD2: VALUE2 }, { FIELD1: VALUE1, FIELD2: VALUE2 }])
2.4 更新集合中的数据
更新第一条符合条件的数据。
db.COLLECTION_NAME.updateOne({ FIELD: VALUE }, { $set: { FIELD1: NEW_VALUE1, FIELD2: NEW_VALUE2 } })
更新所有符合条件的数据。
db.COLLECTION_NAME.updateMany({ FIELD: VALUE }, { $set: { FIELD1: NEW_VALUE1, FIELD2: NEW_VALUE2 } })
2.5 删除集合中的数据
删除第一条符合条件的数据。
db.COLLECTION_NAME.deleteOne({ FIELD: VALUE })
删除所有符合条件的数据。
db.COLLECTION_NAME.deleteMany({ FIELD: VALUE })
3. mongo shell操作脚本
3.1 用脚本导入数据
在MongoDB中,我们经常需要导入数据。有一个常见的做法是,把数据封装成json格式的文件,再通过脚本导入到MongoDB中。这里以导入一个test.json文件为例。
首先,要在mongo shell中连接MongoDB服务。
mongo
进入mongo shell后,连接到目标数据库。
use MY_DATABASE
执行脚本,导入数据。
load('PATH/TO/test.json')
其中,PATH/TO为文件所在的路径。
3.2 用脚本导出数据
在MongoDB中,我们也经常需要导出数据。有一个常见的做法是,通过脚本把数据导出为json格式的文件。这里以导出test_collection集合为例。
首先,要在mongo shell中连接MongoDB服务。
mongo
进入mongo shell后,连接到目标数据库。
use MY_DATABASE
执行脚本,导出数据。
var cursor = db.test_collection.find()
while (cursor.hasNext()) {
printjson(cursor.next());
}
执行完脚本后,可以看到命令行输出了json格式的数据。把这些数据保存到文件中,即可完成数据导出。
3.3 用脚本备份数据库
在MongoDB中,我们需要定期备份数据库以保证数据的安全性。最常见的做法是,通过mongo shell执行备份脚本。这里以备份MY_DATABASE为例。
首先,要在mongo shell中连接MongoDB服务。
mongo
进入mongo shell后,执行备份脚本。
mongodump --host HOST --port PORT --db MY_DATABASE --out PATH/TO/DB_BACKUP
其中,HOST是MongoDB服务所在服务器的IP地址,PORT是MongoDB服务监听的端口号,PATH/TO/DB_BACKUP是数据库备份文件的保存路径。
执行完备份脚本后,在PATH/TO/DB_BACKUP目录下,就会生成一个包含MY_DATABASE数据库备份数据的文件夹。
3.4 用脚本还原数据库
在MongoDB中,我们需要定期还原数据库以保证数据的安全性。最常见的做法是,通过mongo shell执行还原脚本。这里以还原MY_DATABASE为例。
首先,要在mongo shell中连接MongoDB服务。
mongo
进入mongo shell后,执行还原脚本。
mongorestore --host HOST --port PORT --db MY_DATABASE PATH/TO/DB_BACKUP
其中,HOST是MongoDB服务所在服务器的IP地址,PORT是MongoDB服务监听的端口号,PATH/TO/DB_BACKUP是包含MY_DATABASE数据库备份数据的文件夹路径。
执行完还原脚本后,即可将备份数据还原到MY_DATABASE数据库中。
4. 总结
通过本文,我们介绍了MongoDB的常用操作方法和操作脚本。无论是通过mongo shell命令行工具,还是通过脚本执行数据库的导入导出和备份还原操作,都是MongoDB开发人员必备的技能之一。学会了MongoDB的这些常用操作,可以提高工作效率和数据处理能力。