使用场景,我的某个表里有一百万条数据。在表里有个property字段,这个字段是对象属性。当然了,属性下面存在很多子类型。
目前的任务是,我就想要这些子类型,而且是不重复的,表中的数据有180万以上。如果我使用了distinct方法,结果会报错为超出内存阀值
我使用的方法是Set去重,然后再打印出来。代码如下
var find = db['mycollection'].find({});
var figure_set = new Set();
find.forEach(function(event) {
for(var item in event.property) {
figure_set.add(item);
}
})
figure_set.forEach(function (element, set) {
print(element);
});
遍历set集合
var figure_set = new Set();
for(var item of figure_set) {
console.log(item);
}
遍历json对象
json示例如下
var categoryJson = {
"交通/火车班次":"data.traffic",
"人物/企业家":"data.figure",
"人物/体育明星":"data.figure"
}
for循环遍历
for(var item in categoryJson) {
//item是key, categoryJson[item]是value
print(item + " " + categoryJson[item]);
}
注意:在自己使用过程中,需要把表名和字段替换成自己的相应的。
代码在自己的机器上测试过了,可能还是会存在错误和想给我建议的,email: chenrui@marsdl.com