你如何诊断Mongo中的write_concern问题?

时间:2015-04-13 21:07:05

标签: mongodb mongoengine database

我有一个Mongo数据库(v2.4.10)设置,其中包含辅助和我保存的数据。在保存新文档并尝试检索它之后,偶尔会发现未找到文档的例外情况,即使在手动检查时也是如此。

这是一个简短的例子,但不幸的是问题不能始终如一地重现。我怀疑问题是由于在辅助数据副本之前尝试从数据库中读取数据?

from mongoengine import connect, Document

class User(Document):
    date_creation = DateTimeField(default=datetime.datetime.utcnow)
    username = StringField(required=True, unique=True)

user = User()
user.username = 'nick'
user.save()

user = User.objects.get(username='nick') # exception thrown here matching User not found
user.username = 'changed'
user.save()

有没有办法诊断这是否属实?如果我只是打电话给user.save(write_concern={'w':0})

,那么推荐的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

使用 保存(...,write_concern = {w:2,fsync:True},...) 正如mongoengine默认写入None