PyMongoPyMongo入门


备注

本节概述了pymongo是什么,以及开发人员为什么要使用它。

它还应该提到pymongo中的任何大型主题,并链接到相关主题。由于pymongo的文档是新的,您可能需要创建这些相关主题的初始版本。

基本的CRUD操作

MongoDB将数据记录存储为BSON 文档 。 BSON是JSON的二进制表示。

$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test
 

创建

插入单个文档insert_one(document)

>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')
 

插入多个文件insert_many(documents)

>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]
 

替换与过滤器replace_one(filter, replacement, upsert=False) 匹配的单个文档replace_one(filter, replacement, upsert=False) 。 (如果匹配文档不存在,则插入新文档,使用upsert=True

>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1
 

更新

更新与过滤器update_one(filter, update, upsert=False) 匹配的单个文档update_one(filter, update, upsert=False)

>>> result = col.update_one({'x': 1}, {'x': 3})
 

更新一个或多个与过滤器update_many(filter, update, upsert=False) 匹配的文档update_many(filter, update, upsert=False)

>>> result = col.update_many({'x': 1}, {'x': 3})
 

查询数据库find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False)filter参数是一个原型文档,所有结果必须匹配。

>>> result = col.find({'x': 1})
 

从数据库中获取单个文档find_one(filter=None)

>>> result = col.find_one()
 

使用投影查询

query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)
 

删除

删除与过滤器delete_one(filter) 匹配的单个文档

>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1
 

删除与过滤器delete_many(filter) 匹配的一个或多个文档

>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3
 

PyMongo还提供了find_one_and_delete()find_one_and_update()find_one_and_replace() 功能。

你好,世界

PyMongo是MongoDB的本机Python驱动程序。

安装PyMongo

pip install pymongo
 

创建连接

使用MongoClient创建连接。 MongoClient默认为在localhost:27017 运行的MongoDB实例localhost:27017 如果未指定)。

from pymongo import MongoClient
client = MongoClient() 
 

访问数据库对象

PyMongo的Database类表示MongoDB中的数据库构造。数据库包含逻辑相关集合的组。

db = client.mydb
 

访问集合对象

PyMongo的Collection类表示MongoDB中的集合构造。馆藏持有相关文件组。

col = db.mycollection
 

MongoDB在首次使用时隐式创建新的数据库和集合。

安装或设置

有关获取pymongo设置或安装的详细说明。

  • Pip安装

    • 要第一次安装pymongo:

      pip install pymongo

    • 安装特定版本的pymongo:

      其中XXX是要安装的版本

      pip install pymongo==XXX

    • 升级现有的pymongo:

      pip install --upgrade pymongo

  • 使用easy_install进行安装

    • 要第一次安装pymongo:

      python -m easy_install pymongo

    • 升级现有的pymongo:

      python -m easy_install -U pymongo