赞
踩
MongoDB是一种基于文档的(Document-Oriented)NoSQL数据库,它设计简单、易于使用,适用于大多数应用程序开发需求。与传统的关系型数据库不同,MongoDB不需要一个明确定义的模式来存储数据,这意味着可以轻松存储包含不同类型和结构的数据。
在Python中使用MongoDB存储数据是非常简单的,Python中有很多优秀的MongoDB驱动库可以选择,本文将介绍如何使用pymongo驱动库来实现数据存储。
在使用pymongo之前,需要先进行安装。使用pip命令可以快速安装pymongo,如下所示:
pip install pymongo
连接MongoDB数据库非常简单,只需指定MongoDB数据库的地址和端口号即可,如下所示:
- import pymongo
-
- client = pymongo.MongoClient("mongodb://localhost:27017/")
上面的代码通过pymongo驱动库创建一个MongoDB客户端,连接本地的MongoDB数据库,默认端口号为27017。
在MongoDB中,数据以文档的形式存储在集合(Collection)中,集合是MongoDB中的一种无结构化的数据结构,类似于关系型数据库中的表。
要创建一个数据库和集合,可以使用以下代码:
- import pymongo
-
- client = pymongo.MongoClient("mongodb://localhost:27017/")
-
- # 创建数据库
- mydb = client["testdb"]
-
- # 创建集合
- mycol = mydb["testcol"]
在这个例子中,数据库名为“testdb”,集合名为“testcol”。
要向MongoDB中插入数据,可以使用insert_one()和insert_many()方法。insert_one()方法插入一条数据,insert_many()方法插入多条数据。
- import pymongo
-
- client = pymongo.MongoClient("mongodb://localhost:27017/")
-
- mydb = client["testdb"]
- mycol = mydb["testcol"]
-
- # 插入一条数据
- mydict = { "name": "John", "address": "Highway 37" }
- x = mycol.insert_one(mydict)
-
- # 插入多条数据
- mylist = [
- { "name": "Amy", "address": "Apple st 652" },
- { "name": "Hannah", "address": "Mountain 21" },
- { "name": "Michael", "address": "Valley 345" },
- { "name": "Sandy", "address": "Ocean blvd 2" },
- { "name": "Betty", "address": "Green Grass 1" },
- { "name": "Richard", "address": "Sky st 331" },
- { "name": "Susan", "address": "One way 98" },
- { "name": "Vicky", "address": "Yellow Garden 2" },
- { "name": "Ben", "address": "Park Lane 38" },
- { "name": "William", "address": "Central st 954" },
- { "name": "Chuck", "address": "Main Road 989" },
- { "name": "Viola", "address": "Sideway 1633"}
- ]
-
- x = mycol.insert_many(mylist)
使用find()方法来查询MongoDB中的数据。find()方法可以接受查询条件作为参数,如果没有查询条件,则返回集合中的所有文档。
- import pymongo
-
- client = pymongo.MongoClient("mongodb://localhost:27017/")
-
- mydb = client["testdb"]
- mycol = mydb["testcol"]
-
- # 查询所有数据
- for x in mycol.find():
- print(x)
-
- # 查询name为John的数据
- myquery = { "name": "John" }
- mydoc = mycol.find(myquery)
- for x in mydoc:
- print(x)
在上面的代码中,第一个for循环查询了集合中的所有文档,第二个for循环查询了符合条件的文档。
使用update_one()方法或update_many()方法来更新MongoDB中的数据。
- import pymongo
-
- client = pymongo.MongoClient(“mongodb://localhost:27017/”)
-
- mydb = client[“testdb”]
- mycol = mydb[“testcol”]
-
更新一条数据
- myquery = { “name”: “John” }
- newvalues = { “$set”: { “address”: “Canyon 123” } }
- mycol.update_one(myquery, newvalues)
更新多条数据
- myquery = { “address”: { “regex": "^S" } } newvalues = { "set”: { “name”: “Minnie” } }
- x = mycol.update_many(myquery, newvalues)
-
- print(x.modified_count, “文档已修改”)
使用delete_one()方法或delete_many()方法来删除MongoDB中的数据。
- import pymongo
-
- client = pymongo.MongoClient("mongodb://localhost:27017/")
-
- mydb = client["testdb"]
- mycol = mydb["testcol"]
-
- # 删除一条数据
- myquery = { "address": "Mountain 21" }
- mycol.delete_one(myquery)
-
- # 删除多条数据
- myquery = { "name": {"$regex": "^S"} }
- x = mycol.delete_many(myquery)
-
- print(x.deleted_count, "文档已删除")
总结:
在Python中使用MongoDB存储数据非常方便,只需安装pymongo驱动库即可。通过连接MongoDB数据库、创建数据库和集合、插入、查询、更新和删除数据等基本操作,可以轻松实现数据的存储和管理。本文仅是入门介绍,希望能够对初学者有所帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。