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

问题描述 投票:0回答:1

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

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

所以,重复上面的问题:如何在mongoengine中获取更改文档的当前字段值?

python-3.x flask mongoengine flask-mongoengine
1个回答
0
投票

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

user = User.objects.with_id(some_id)
user.email = '[email protected]'
# 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查找解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.