1. MongoDB简介
MongoDB是当前较为流行的NoSQL数据库之一,与传统SQL数据库相比,它的优势在于横向扩展性能强,不用设计表结构,存储模型灵活,可存储复杂的JSON文档,支持分布式部署等。
MongoDB的核心组件包括:
mongod:MongoDB的服务进程
mongos:分片服务进程(仅用于分布式环境)
mongo:MongoDB的客户端
2. 安装MongoDB
2.1 下载MongoDB
从MongoDB官网(https://www.mongodb.com/)下载相应版本的MongoDB,选择对应系统及版本,如下图:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.2.tgz
tar -zxvf mongodb-linux-x86_64-3.6.2.tgz
2.2 安装MongoDB
解压下载的MongoDB压缩包并将其放置在系统指定的目录下,如在ubuntu中可将其解压放置到/usr/local目录下,并将mongodb的bin目录路径添加到PATH环境变量中:
export PATH=$PATH:/usr/local/mongodb/bin
启动mongod服务进程,mongodb会自动检查数据目录/db/下是否存在数据,如果没有则创建一个数据存储的目录,建议指定>日志文件的路径通过日志记录mongodb的启动过程和运行时产生的异常等信息。
mkdir /data/mongodb/
mongod --dbpath /data/mongodb/ --logpath /data/mongodb/logs/mongodb.log --fork
2.3 验证MongoDB
使用mongo命令启动mongo shell,测试MongoDB是否正常运行:
mongo
输入命令show dbs
,若MongoDB服务器正常启动,则Shell会返回当前的数据库列表。
3. 创建数据库与集合
3.1 创建数据库
使用mongo shell中的use 数据库名称
命令即可创建一个新的数据库,如果这个数据库不存在,则mongo shell会自动创建它。
use testdb
注意:如果需要直接访问数据库,请使用db.getSiblingDB('数据库名称')
,不能用use命令。
3.2 创建集合
集合(Collection)即类似关系数据库中的表格,MongoDB中是按照数据的类型来组织和存储的,它是一种动态结构,没有固定的表结构。
在MongoDB中,如果要创建一个集合,只需要在该集合中插入一条文档即可,或使用createCollection方法。
db.testcol.insert({"name":"tom"})
或
db.createCollection("testcol")
4. 插入文档
在MongoDB中,数据以文档(Document)的形式存储,每个文档都是一个键值对(Key-Value)组成的集合,其中文档中的键是一个字符串,值可以是各种类型的内容。
在MongoDB的insert操作中,插入单个文档可以使用insertOne命令,而其中插入多条文档可使用insertMany命令。
db.testcol.insertOne({"name":"tom","age":18,"gender":"male"})
db.testcol.insertMany([{"name":"alice","age":20},{"name":"bob","age":22,"remark":"hello world"}])
5. 查询文档
对于MongoDB中的查询语句,使用find()命令或findOne()命令来查询集合中的所有文档或指定条件的文档。
db.testcol.find()
db.testcol.find({"name":"tom"})
db.testcol.findOne()
其中,find()命令会返回集合中所有的文档,find({"name":"tom"})会查找集合中name值为tom的所有文档,而findOne()命令则只会返回第一条查询结果。
6. 删除文档
在MongoDB中,删除操作可以使用deleteOne()或deleteMany()方法。deleteOne()方法会删除符合条件的第一条文档,而deleteMany()方法则会删除符合条件的所有文档。
db.testcol.deleteOne({"name":"tom"}) //删除name值为tom的第一条文档
db.testcol.deleteMany({"name":"tom"}) //删除name值为tom的所有文档
7. 修改文档
在MongoDB中,修改文档可以使用updateOne()或updateMany()方法。
updateOne()方法会修改符合条件的第一条文档,而updateMany()方法则会修改符合条件的所有文档。
db.testcol.updateOne({"name":"tom"},{$set:{"age":20}})
db.testcol.updateMany({"name":"tom"},{$set:{"age":20}})
8. 结语
通过以上MongoDB的基本操作,我们已经可以实现简单的数据存储、查询、删除、更新等功能。当然,MongoDB还有很多高级操作以及在分布式环境下的部署等方面需要进一步学习和掌握。
建议有兴趣的读者可以深入研究MongoDB的各种高级特性,以及其与其他相关技术的集成应用。