【仅供内部供应商使用,不提供对外解答和培训】
...
Code Block |
---|
package com.fr.plugin.db.mongo.expand; import com.fr.stable.fun.mark.Mutable; import org.bson.Document; import java.util.List; public interface ColumnResolver extends Mutable { String MARK_STRING = "ColumnResolver"; int CURRENT_LEVEL = 1; /** * 是否需要处理该类型的元素 * * @param cell doc查询出来的对象 * @return 需要做扩展处理则返回true,否则返回false */ boolean accept(Object cell); /** * 扩展特殊列,增加新的行 * * @param doc MongoDB的文档查询对象 * @param columnNames 列民集合 * @param waitingColumnsIndex 需要特殊处理的列集合 * @param rowDataCollections 扩展出来的行数据集合 * @param rowData 当前行数据 */ void expandData(Document doc, List<String> columnNames, List<Integer> waitingColumnsIndex, List<List<Object>> rowDataCollections, List<Object> rowData); } |
我们以数组元素为例子,面对这样的数据结构:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"name" : "李四",
"age" : NumberInt(15),
"language" : [
"英语",
"数学",
"物理",
"化学"
],
"region" : [
"新疆",
"海南",
"台湾"
],
"country" : "US"
} |