Почему метод Flask-PyMongo bulk_writes не существует? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть фрагмент кода, подобный этому:

from flask import Flask
from flask_pymongo import PyMongo
from pymongo import InsertOne, UpdateOne, DeleteOne, ReplaceOne
from flask import jsonify

app = Flask(__name__)
app.config['MONGO_DBNAME'] = 'MyDB'

mongo = PyMongo(app)
coll = mongo.db['collection1']

requests = []
for d in data_to_delete:
    requests.append(DeleteOne({'key1': d}))

result = coll.bulk_writes(requests)

return jsonify(result=result.deleted_count)

Когда я пытаюсь выполнить его, я получаю сообщение об ошибке:

TypeError: 'Collection' object is not callable. If you meant to call the 'bulk_writes' method on a 'Collection' object it is failing because no such method exists.

Документация PyMongo говорит, что у объекта Collection есть этот метод, хотя я знаю, что Flask-Pymongo является оберткой вокруг PyMongo. В чем может быть проблема, и как я могу использовать bulk_writes() с Flask-Pymongo коллекциями?

Спасибо за помощь!

1 Ответ

0 голосов
/ 02 июля 2018

Похоже, вы сделали опечатку, добавив "s" к имени метода. Попробуйте bulk_write без "s".

Flask-PyMongo, как и сам PyMongo и оболочка MongoDB, обрабатывает неизвестные имена атрибутов в коллекциях как точечные имена коллекций, поэтому он думает, что вы пытаетесь вызвать коллекцию с именем collection1.bulk_writes.

...