This topic created in 1778 days ago, the information mentioned may be changed or developed.
各位大佬,mongo 如何对比一个文档改了哪些字端?更改了哪些值?
比如 a = {'name': 'zz', 'age': 18, 'scope': [1,2,3]}
更改为了 a = {'name': 'zzz', 'age': 28, 'scope': [4,5,6]}
如何接口判断到哪个值变换了
7 replies • 2021-08-13 19:57:21 +08:00
 |
|
1
SorcererXW Aug 9, 2021
findOneAndUpdate({},{},{returnNewDocument:false}) 取出旧值再对比
|
 |
|
2
Chemist Aug 9, 2021 via iPhone
function getChangedFields(oldObj, newObj): string[] { --const changedFields: string[] = []; --Object.keys(newObj).forEach(k => { ----if (newObj[k].toString() != oldObj[k].toString()) { ------changedFields.push(k); ----} --}); --return changedFields; }
|
 |
|
3
ztoben Aug 10, 2021
@ SorcererXW 其实我的意思是有没有什么第三方的包或者通用的方法来判断他哪些字端的变更,比如 java 的 ObjectDiff
|
 |
|
4
crclz Aug 11, 2021
可以 Replace (全量更新)
|
 |
|
5
strict Aug 13, 2021
db.coll.findAndModify()可以拿到原 json python 通过 jsondiff 去作比较
|
 |
|
7
ztoben Aug 13, 2021
@ crclz 最主要不是更新 是记录他发生过的变化 从 a 变到 b 列表从空变到有值
|