我使用的Web应用程序pymongo,和想要做的形式的东西锁定一个文件:MongoDB中
doc = collection.find(document)
doc.array1.append('foo')
for(y in doc.array2): <do things with y>
doc.array2 = filter(lambda x: ..., doc.array2)
doc.x = len(doc.array2)
collection.save(doc)
有没有什么简单的方法,这样我可以处理处理同一文档的多个请求并防止他人破坏另一个/的结果无效,因为它正在编辑一个陈旧的版本?
我看到他们如何反对持有锁,但我认为这是为收集而不是单个文件?我希望有一种方法可以执行此操作: –
2012-07-17 00:03:12
该文档通过基本的'update'查询或更复杂的'find and modify'命令解释了这样做的方法。这个问题是基于你的例子,你首先要对文档数据做一堆本地操作来确定新的修改值。这需要能够将文档从客户端保持在锁定状态。他们不允许这种功能,因为他们表示可能导致潜在的死锁(如果说你的应用程序突然终止)。 – jdi 2012-07-17 00:12:46
MongoDB(特别是PyMongo)是否有一个内置构造来执行此操作@jdi还是必须手动执行此操作?似乎无法找到。 – Ali 2015-10-06 09:59:02