基本的 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) 匹配的單個文件。 (如果匹配的文件不存在,則插入新文件,使用 upsert=True

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

更新

更新與過濾器 update_one(filter, update, upsert=False) 匹配的單個文件

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

更新與過濾器 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)。該濾波器引數是一個原型的檔案,所有的結果必須匹配。

>>> 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() 功能。