我可以检索视图中已更新的字段吗?理想情况下,我可以检索已更新的字段总数(项目已添加到列表字段或字段已更改)以及各个字段的名称/计数。
给出db记录,例如:
{
"_id": "e3cfb5e19e5c05fb6822c5ee228c4f2e",
"_rev": "52-c78a26776b0e0736dd45e44a47634031",
"last_updated": "23/04/2015",
"title", "testdoc",
"samples": [
{
"confidence": "high",
"handle": "joetest"
}
],
"locations": [
{"Toronto", "Ontario"},
{"Vancouver", "British Columbia"}
]
}
如果“样本”中有2个新项目,“位置”中有1个,我会看到更新的数量为3.
答案 0 :(得分:1)
假设您在更新数据之前检索数据,您可以在数据更新后将其与数据进行比较。以下简单函数查看原始数据中包含数组的任何键,并返回新数据的长度。
def list_delta(before, after):
out = {}
for key in before:
if isinstance(before[key], list):
out[key] = len(after[key]) - len(before[key])
return out
before = {'name': 'davidism', 'numbers': [0, 1, 2, 3, 4]}
after = do_update(before)
# after = {'name': 'davidism', 'numbers': [0, 1, 2, 3, 4, 5]}
list_delta(before, after)
# returns {'numbers': 1}
您可以更聪明地比较是否添加或删除了键,或者实际值是否已更改,或者是否对嵌套结构进行了更深入的递归比较,但这超出了此答案的范围。