pymongo 批操做

爲何要進行批操做?html

答:單條mongo操做不少時間都花費在網絡延遲上了,批操做減小了網絡操做的次數,總體性能大大挺高了。python

文檔來源在哪?mongodb

答:pymongo 官網https://api.mongodb.com/python/current/examples/bulk.htmlapi

mongo 有沒有批量查詢?網絡

答:mongo 沒有批量查詢,須要本身查出來後再判斷;不能批量執行查詢語句。ide

mongo 批量操做示例:性能

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import sys
from pprint import pprint

from pymongo import MongoClient
from pymongo import InsertOne, DeleteOne, ReplaceOne
from pymongo.errors import BulkWriteError
from pymongo import bulk

def test_bulk_write():
    """
    Breifs:
        test bulk_write
    """
    client = MongoClient('45.77.10.62', 27017)
    db = client.news
    requests = [\
        ReplaceOne({'j': 2}, {'i': 5}),\
        InsertOne({'_id': 5}), \
        DeleteOne({'i': 5})\
        ]
    try:
        db.test.bulk_write(requests, ordered=True)
    except BulkWriteError as bwe:
        pprint(bwe.details)

def test_bulk():
    """
    test bulk
    """
    client = MongoClient('45.77.10.62', 27017)
    collection = client.news.test
    operate = bulk.BulkOperationBuilder(collection, ordered = True)
    operate.insert({'test':'12321', '_id': 123})
    operate.insert({'test':'12321', '_id': 124})
    operate.execute()

if __name__ == '__main__':
    test_bulk_write()
    test_bulk()
View Code
相關文章
相關標籤/搜索