如何在mongoengine中获取已更改文档的当前字段值?

当我更改文档时,我看到字段新值。但是有时候我想看看它的旧值(或者可以正确地说,它的当前值)。我知道我可以在_changed_fields属性中看到更改的字段,并且有些东西告诉我我也可以看到当前值。但是我找不到地方。而且我的搜索没有结果。

我要注意的是:我想找到mongoengine而不是pymongo的解决方案。因为我知道我可以通过pymongo查询文档并获取文档,但这是对数据库的额外查询,因此我不想再麻烦db了。

因此,重复上述问题:如何在mongoengine中获取已更改文档的当前字段值?

z979581569 回答:如何在mongoengine中获取已更改文档的当前字段值?

正如我所提到的,有一个pymongo的解决方案:

user = User.objects.with_id(some_id)
user.email = 'test@mail.ru'
# And then somewhere below I want to see an old value
# For example,I want 'email' field
user_coll = User._get_collection()
user_data = user_coll.find_one({'_id': user},{'_id': 0,'email': 1})
old_value = user_data.get('email','')

但是对数据库有一个额外的查询。因此,我想用mongoengine找到解决方案。

本文链接:https://www.f2er.com/3146217.html

大家都在问