Closed shengli963 closed 6 years ago
我之前只考虑了两个json取交集的情况,我一直都是用下面这种情况
"m_returnfilds": {
"xxxx": 1
},
我修改了一下方法,会再下一个版本中发布,如果你着急用,可以修改util.js里面的方法 贴上代码:
var returnJsonObject = function (nativeJson, searchJson) {
var resultJson = {};
if (nativeJson && searchJson) {
var v = returnJsonValue(searchJson);
if (v === 1) {
for (var attrNa in nativeJson) {
for (var attrFi in searchJson) {
if (attrNa === attrFi) {
resultJson[attrNa] = nativeJson[attrNa];
}
}
}
} else if (v === 0) {
for (var attrNa in nativeJson) {
var flag = false;
for (var attrFi in searchJson) {
if (attrNa === attrFi) {
flag = true;
continue;
}
}
if (!flag) {
resultJson[attrNa] = nativeJson[attrNa];
}
}
} else {
resultJson = nativeJson;
}
} else {
resultJson = nativeJson;
}
return resultJson;
};
var returnJsonValue = function (obj) {
var result = -1;
if (obj && Object.keys(obj).length > 0) {
var size = 0;
for (key in obj) {
if (obj[key] > -1) {
result = obj[key];
if (size > 0 && result !== obj[key]) {
result = -1;
return;
}
}
size++;
}
}
if (result !== -1 && result !== 0 && result !== 1) {
result = -1;
}
return result;
};
value值只有两种情况:全部都是1或者全部都是0,如果不满足条件,就返回所有的数据 参考一下mongodb文档:
赞, 0,和1不能交叉使用.
配置文件
util.js里这种方式返回会是一个空的doc.