📅  最后修改于: 2023-12-03 15:00:01.538000             🧑  作者: Mango
MongoDB是一个流行的开源NoSQL数据库,可以与多种编程语言和框架一起使用。本文将向您展示如何连接MongoDB、执行查询和关闭连接。
首先,您需要安装适用于您的编程语言的 MongoDB 驱动程序。这里我们将介绍使用 Python 的情况。
您可以使用 pip 安装 pymongo ,它是 MongoDB 的官方 Python 驱动程序:
pip install pymongo
要连接 MongoDB,请指定所需的地址和端口。在本地机器上运行 MongoDB,默认端口是 27017:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
如果数据库不存在,MongoDB 将为您创建它。要检查数据库是否存在,请使用 list_database_names()
方法:
dblist = myclient.list_database_names()
if "mydatabase" in dblist:
print("The database exists.")
您也可以创建新数据库:
mydb = myclient["mydatabase"]
在 MongoDB 中,数据存储在集合(collection)中。如果不存在一个集合的话,MongoDB 将为您创建一个。
要检查集合是否存在,请使用 list_collection_names()
方法:
collist = mydb.list_collection_names()
if "customers" in collist:
print("The collection exists.")
您也可以创建一个新集合:
mycol = mydb["customers"]
要向集合中插入数据,请使用 insert_one()
方法:
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
在上面的示例中,我们首先创建了一个字典对象。然后,我们使用 insert_one()
方法向集合中插入此数据。最后,我们打印出对象的 _id
属性。
要向集合中插入多个文档,请使用 insert_many()
方法:
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"}
]
x = mycol.insert_many(mylist)
print(x.inserted_ids)
要从MongoDB中选择数据,请使用 find_one()
或 find()
方法:
x = mycol.find_one()
print(x)
通过此操作,我们选择了集合中的一条记录,并打印出它。
这是一个更高级的示例,它选择了多个文档,排除了 _id
字段,并按名称进行升序排列。
for x in mycol.find({}, {"_id": 0}).sort("name"):
print(x)
要从 MongoDB 中删除数据,请使用 delete_one()
或 delete_many()
方法:
myquery = { "address": "Mountain 21" }
mycol.delete_one(myquery)
这个示例删除了集合中地址为 “Mountain 21” 的第一条记录。
和 delete_one()
相反,delete_many()
方法将删除所有匹配文档:
myquery = { "address": {"$regex": "^S"} }
x = mycol.delete_many(myquery)
print(x.deleted_count, " documents deleted.")
这个示例删除了所有地址以大写字母S开头的文档,并将删除文档的数量打印到控制台。
要在 MongoDB 中更新数据,请使用 update_one()
或 update_many()
方法:
myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
mycol.update_one(myquery, newvalues)
此示例将一个名为 “Valley 345” 的文档的地址更新为“Canyon 123”。
与 update_one 相反,update_many()
将更新所有匹配文档:
myquery = { "address": {"$regex": "^S"} }
newvalues = { "$set": { "address": "Canyon 123" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, " documents updated.")
此示例将所有地址以大写字母S开头的文档的地址更新为“Canyon 123”,并返回更新文档数量。
要关闭MongoDB连接,请使用 close()
方法:
myclient.close()
现在,您知道了如何连接MongoDB、执行查询、插入、更新和删除数据以及关闭连接。
MongoDB 是一个高度灵活、可扩展、易于使用的数据库。它通过 NoSQL 的方法存储数据,使其能够处理大数据量、高并发请求。结合 Python 和 pymongo 驱动程序,您可以轻松地与 MongoDB 交互。