I am struggling to do a Bulk Insert with MongoEngine. I can easily do a .save() with a loop to write to the database, however I cannot find the procedure to do a Bulk Insert from the MongoEngine documentation. The only mentioning was here on SO: multi document insert using mongoengine into mongodb. I tried to do it this way but I just insert all the documents without validating them in the Schema.
This is my code:
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)