我有一个该死的时间做一个查询。
有一个building_id,用户名和正确的字段。
我们需要查看用户和特定建筑物是否存在任何记录(因为他们只能拥有一票)。
如果它不存在,我们需要插入一条新记录,其中包含 building_id、用户名和正确的。
如果确实存在,我们需要找到具有 building_id 和 username 的记录,并更新正确以成为新的投票。
我一直在玩保存、更新、get_or_create,它们都不断弹出错误。这将如何在 MongoEngine 中完成?
我有一个该死的时间做一个查询。
有一个building_id,用户名和正确的字段。
我们需要查看用户和特定建筑物是否存在任何记录(因为他们只能拥有一票)。
如果它不存在,我们需要插入一条新记录,其中包含 building_id、用户名和正确的。
如果确实存在,我们需要找到具有 building_id 和 username 的记录,并更新正确以成为新的投票。
我一直在玩保存、更新、get_or_create,它们都不断弹出错误。这将如何在 MongoEngine 中完成?
您可以使用简单的更新,将 upsert 和 multiple 设置为 true:
http://docs.mongodb.org/manual/reference/method/db.collection.update/
语法如下:
db.collection.update(
<query>,
<update>,
{ upsert: <boolean>, multi: <boolean> }
)
关于两个条件的检查,您的查询可以包含任意数量的内容。
我不知道你的收藏,但也许:
db.yourCollection.update({"user": "someUser", "buildindId": "someBuildingId"}, {"correct": "your correction"}, {upsert: true, multi: true})