📜  connnect mongodb (1)

📅  最后修改于: 2023-12-03 15:00:01.538000             🧑  作者: Mango

连接 MongoDB

MongoDB是一个流行的开源NoSQL数据库,可以与多种编程语言和框架一起使用。本文将向您展示如何连接MongoDB、执行查询和关闭连接。

安装 MongoDB 驱动

首先,您需要安装适用于您的编程语言的 MongoDB 驱动程序。这里我们将介绍使用 Python 的情况。

您可以使用 pip 安装 pymongo ,它是 MongoDB 的官方 Python 驱动程序:

pip install pymongo
连接 MongoDB

要连接 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 交互。