【发布时间】:2018-06-10 05:48:42
【问题描述】:
我正在努力使用 MongoEngine 进行批量插入。我可以轻松地使用循环执行 .save() 以写入数据库,但是我无法从 MongoEngine 文档中找到执行批量插入的过程。唯一提到的是这里:multi document insert using mongoengine into mongodb。我尝试这样做,但我只是插入所有文档而不在架构中验证它们。
这是我的代码:
import mongoengine as me
# connect to MongoDB
me.connect(host='CONNECTION_STRING')
# venue Schema
class newVenues(me.Document):
name = me.StringField(required=True)
latitude = me.DecimalField(required=True)
longitude = me.DecimalField(required=True)
# some test data
venues = [{'name': 'Vega',
'latitude': 55.672867,
'longitude': 12.473692},
{'name': 'Tivoli',
'latitude': 55.681256,
'longitude': 12.553412}]
# the list of venues to bulk insert to MongoDB
venues_to_insert_list = []
for venue in venues:
venues_to_insert_list.append(
newVenues(
name=venue.get('name'),
latitude=venue.get('latitude'),
longitude=venue.get('longitude')
)
)
# bulk insert to MongoDB
newVenues.objects.insert(venues_to_insert_list)
【问题讨论】:
-
你看过
.insertMany() -
是的,但我不确定如何使用 .insertMany() 或 PyMongo,我猜它是 .insert_many()。我尝试这样做,但出现此错误:TypeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping.
标签: python mongodb mongoengine