检索记录中已更新的字段

2024-09-30 06:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以检索视图中已更新的字段吗?理想情况下,我将能够检索已更新的字段总数(项添加到列表字段或字段更改)和单个字段的名称/计数

给出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


Tags: 名称视图id列表db记录情况rev
1条回答
网友
1楼 · 发布于 2024-09-30 06:32:24

假设您在数据更新之前检索数据,您可以将其与更新后的数据进行比较。下面的简单函数查看原始数据中具有数组的任何键,并返回新数据的长度

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}

您可以更聪明地比较是否添加或删除了键,或者实际值是否更改,或者对嵌套结构进行更深入的递归比较,但这超出了本答案的范围

相关问题 更多 >

    热门问题