使用mongoengine将多文档插入到mongodb中
问题内容:
在我的烧瓶应用程序中,我正在使用MongoeEgine。我试图将多个文档插入MongoDB的地方集合中。
我的文档类定义为
class places(db.Document):
name = db.StringField(max_length=200, required=True)
loc = db.GeoPointField(required=True)
def __unicode__(self):
return self.name
a=[]
a.append({"name" : 'test' , "loc":[-87,101]})
a.append({"name" : 'test' , "loc":[-88,101]})
x= places(a)
最后一条语句失败
x= places(a)
TypeError: __init__() takes exactly 1 argument (2 given)
我也尝试将其保存到我的实例中
places.insert(x)
places.save(x)
都失败了。请帮忙。
问题答案:
Places.objects.insert
不带字典列表,它必须是Places
实例。正常操作是创建的单个实例,Places
然后保存或插入例如:
Places(name="test", loc=[-87, 101]).save()
Places(name="test 2", loc=[-87, 101]).save()
但是,如果你想要做批量插入你可以通过列表Places
实例和呼叫insert
的objects
查询集如:
Places.objects.insert([Places(name="test", loc=[-87, 101]),
Places(name="test 2", loc=[-87, 101])])