私のフラスコのアプリでは、私はMongoeEgineを使用しています。 MongoDBの私の場所コレクションに複数の文書を挿入しようとしています。mongoengineを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)
にこれを保存しようとしたが失敗します。助けてください。
ありがとうございました。どのように私はアップアップを行うためにこれを使用することができます。これらの行が新しい場合は挿入し、そうでない場合は既存の行を更新します。 upsert = Trueフラグを指定したPlaces.objects.upsertまたはPlaces.object.insertはありますか? – user1340513
@Rossは、* NotUniqueError *を避けるための簡単な方法ですか?私はPyMongoの一括挿入で* ordered *を使うことについて何かを読んだが、Mongoengineを使うことを好むだろう。私は_getCollection()について知っていますが、コレクションに直接アクセスしないようにしたいと考えています。私はMongoengine構文を使用することを好む:) – giliev
@Ross上記の操作のどれが効率的なものであるかは、それがsave()操作かバルク挿入操作かどうかを意味します。 – hkhr