如何使用nodejs管理json数据结构的增量更新?

时间:2019-04-03 07:19:28

标签: node.js json

我正在使用一个提供给我同步API的外部服务,该API将以json对象的形式返回整个数据,例如:

INIT CALL:

{
    elements : [
        {
            setup : {
                id: uniqueID,
                version:1,
                ....
            },
            attributes : [
                attr1: val1,
                ...
            ]
        },
        ....
    ],
    removedElements : []
}

或者将从最新同步返回发生的增量变化。

DIFF通话:

{
    elements : [
        {
            setup : {
                id: uniqueID,
                version:2,
                ....
            },
            attributes : [
                attr1: val1,
                ...
            ]
        },
        ....
    ],
    removedElements : [
        {
            setup : {
                id: uniqueID,

            }
        },
        ....
    ]
}

从我的角度来说,我正在存储第一个调用,以获取整个数据的本地副本(缓存),然后计划使用批处理过程来保持数据更新。

然后,我需要将两个信息合并为一个。 期待最高性能的最佳javascript选项 已合并为INIT CALL数据DIFF CALL传入数据。

由于枢轴在elements [i] .setup.id处为“ id”,所以在讲话之际,我只能看到一个double foreach,如(伪代码):

foreach elementsD in DIFF_CALL:
   foreach elementsI, idx in INIT_CALL:
       if(elementsD.setup.id==elementsI.setup.id)
           INIT_CALL[idx]=elementsD

以及删除的元素:

foreach removed_elementsD in DIFF_CALL:
   foreach removed_elementsI, idx in INIT_CALL:
       if(removed_elementsD.setup.id==removed_elementsI.setup.id)
           delete INIT_CALL[idx]

是否存在任何可以帮助我获得更高性能或更优雅的库方法(例如lodash?)?

0 个答案:

没有答案