2

クエリを実行するのに苦労しています。

building_id、username、および correct のフィールドがあります。

ユーザーと特定の建物のレコードが存在するかどうかを確認する必要があります (1 票しか持てないため)。

存在しない場合は、build_id、username、および correct を使用して新しいレコードを挿入する必要があります。

存在する場合は、 building_id と username を持つレコードを見つけて、新しい投票になるように更新する必要があります。

私はsave、update、get_or_createで遊んでいますが、それらはすべてエラーをポップアップし続けています。これはMongoEngineでどのように行われますか?

4

1 に答える 1

0

upsert と multiple を true に設定して、簡単な更新を使用できます。

http://docs.mongodb.org/manual/reference/method/db.collection.update/

構文は次のとおりです。

db.collection.update(
   <query>,
   <update>,
   { upsert: <boolean>, multi: <boolean> }
)

2 つの条件のチェックに関しては、クエリに必要な数だけ含めることができます。

あなたのコレクションはわかりませんが、多分:

db.yourCollection.update({"user": "someUser", "buildindId": "someBuildingId"}, {"correct": "your correction"}, {upsert: true, multi: true})
于 2014-03-01T01:30:10.563 に答える