1. MongoDB介绍
MongoDB是一个基于分布式文件存储的数据库系统,它可以存储和处理海量的数据。相比传统的关系型数据库,MongoDB支持更加灵活的数据结构,更好的可扩展性和更高的性能表现。MongoDB是开源的,可以在Windows,Linux和MacOS等不同的操作系统上运行。
2. MongoDB连接
2.1 安装MongoDB
在开始之前,我们需要先安装MongoDB数据库到本地计算机上。MongoDB可以从其官网上进行下载安装。首先在终端中进行解压MongoDB:
$ tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.4.5.tgz
$ cd mongodb-linux-x86_64-ubuntu1804-4.4.5/bin
解压完成后,我们可以使用以下命令检查MongoDB是否成功安装:
$ ./mongod --version
如果安装成功,会输出类似以下的信息:
db version v4.4.5
Build Info: {
"version": "4.4.5",
"gitVersion": "ff5cb77101b052fa02da43b8538093486cf9b3f7",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu1804",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
2.2 连接数据库
在安装MongoDB成功之后,我们需要连接到其服务。MongoDB默认情况下监听27017端口,可以使用以下命令连接到其服务:
$ mongo
如果成功连接到MongoDB实例,则会输出如下信息:
MongoDB shell version v4.4.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ccf94ae5-fb11-4a3a-b16f-0d85c0f6746a") }
MongoDB server version: 4.4.5
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
https://community.mongodb.com/
>
在MongoDB中,默认会创建一个名为test的数据库,使用如下命令可以切换到当前连接的test数据库:
> use test
如果使用命令成功切换到该数据库,则会显示如下输出:
switched to db test
3. MongoDB操作
3.1 创建集合
MongoDB的数据存储在集合中,集合类似于关系型数据库中的表。在MongoDB中,可以使用以下命令来创建一个名为test_collection的集合:
> db.createCollection("test_collection")
如果创建成功,会输出如下信息:
{ "ok" : 1 }
3.2 插入文档
在MongoDB中,可以使用如下命令向集合中插入一组文档:
> db.test_collection.insert({"name": "test", "age": 18})
该命令会将包含"name"和"age"两个字段的一条文档插入到test_collection集合中。如果执行成功,则会返回以下信息:
WriteResult({ "nInserted" : 1 })
3.3 查询文档
在MongoDB中,可以使用以下命令对集合进行查询:
> db.test_collection.find({"name": "test"})
该命令表示查询名为test的文档。如果查询成功,则会返回以下信息:
{ "_id" : ObjectId("607715ffa0851c530d20b21f"), "name" : "test", "age" : 18 }
其中"_id"字段是MongoDB自动生成的唯一标识符。
3.4 更新文档
在MongoDB中,可以使用以下命令对集合中的文档进行更新:
> db.test_collection.update({"name": "test"}, {"name": "test", "age": 20})
该命令表示按照"name"字段查询名为test的文档,并将其"age"字段的值更新为20。如果更新成功,则会返回以下信息:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
3.5 删除文档
在MongoDB中,可以使用以下命令对集合中的文档进行删除:
> db.test_collection.remove({"name": "test"})
该命令表示删除名为test的文档。如果删除成功,则会返回以下信息:
WriteResult({ "nRemoved" : 1 })
4. MongoDB和Python
4.1 安装pymongo
pymongo是MongoDB的Python客户端,可以通过它来操作MongoDB数据库。
$ pip install pymongo
4.2 连接MongoDB
在Python中,可以使用pymongo来连接MongoDB。首先需要导入pymongo模块:
import pymongo
连接MongoDB可以使用如下代码:
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client.test
其中,'mongodb://localhost:27017/'表示MongoDB服务的地址和端口号,'test'表示需要连接的数据库的名称。使用以上代码可以连接到MongoDB,并选中test数据库。
4.3 操作MongoDB
在使用Python操作MongoDB时,可以通过以下代码向test_collection中插入一条文档:
collection = db.test_collection
document = {"name": "test", "age": 18}
collection.insert_one(document)
以上代码会向test_collection插入一条包含"name"和"age"两个字段的文档,并返回MongoDB为该文档生成的"_id"字段。
查询集合中的文档可以使用如下代码:
collection.find_one({"name": "test"})
以上代码表示在test_collection集合中查询名为test的文档,并返回MongoDB查询到的第一条结果。
更新集合中的文档可以使用如下代码:
collection.update_one({"name": "test"}, {"$set": {"age": 20}})
以上代码会将test_collection集合中"name"字段为test的文档的"age"字段修改为20。
删除集合中的文档可以使用如下代码:
collection.delete_one({"name": "test"})
以上代码表示删除test_collection集合中"name"字段为test的文档中的一条记录。
5. 总结
本文介绍了MongoDB的连接以及基本的操作方法,包括创建集合、插入文档、查询文档、更新文档和删除文档。此外,还介绍了Python操作MongoDB的方法。