Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mongo集合中所有文档中的字段超集_Java_Mongodb_Mongodb Query_Aggregation Framework_Spring Mongodb - Fatal编程技术网

Java Mongo集合中所有文档中的字段超集

Java Mongo集合中所有文档中的字段超集,java,mongodb,mongodb-query,aggregation-framework,spring-mongodb,Java,Mongodb,Mongodb Query,Aggregation Framework,Spring Mongodb,假设所有文档类型相同但字段数量不同,如何创建MongoDB单个集合中所有文档中存在的超级字段集(id除外) 例如: doc1 - {"_id":"test1", "firstName":"sample1", "age":24, "state":"Kansas"} doc2 - {"_id":"test2", "lastName":"sample2", "age":24, "country":"US"} 超集将是:{“firstName”、“lastName”、“age”、“state”、“co

假设所有文档类型相同但字段数量不同,如何创建MongoDB单个集合中所有文档中存在的超级字段集(id除外)

例如:

doc1 - {"_id":"test1", "firstName":"sample1", "age":24, "state":"Kansas"}
doc2 - {"_id":"test2", "lastName":"sample2", "age":24, "country":"US"}

超集将是:
{“firstName”、“lastName”、“age”、“state”、“country”}

您可以尝试运行
mapReduce
操作,该操作将返回输入集合中的所有给定文档键作为结果文档的
\u id
键。这将在输出集合中,您可以在
\u id
字段上应用distinct命令来检索字段的超集

下面的示例显示了此概念:

// Run mapReduce on collectionName
String map = "function () { for (var key in this) { emit(key, null); } }";
String reduce = "function () {}";
MapReduceResults<ValueObject> results = mongoTemplate.mapReduce(
    "collectionName", 
    map, 
    reduce,
    new MapReduceOptions().outputCollection("col_out"), 
    ValueObject.class
);
// Get the distinct keys from output collection col_out ---
List<String> fieldsSuperset = mongoTemplate.getCollection("col_out").distinct("_id");
//在collectionName上运行mapReduce
String map=“function(){for(此中的var key){emit(key,null);}}”;
String reduce=“函数(){}”;
MapReduceResults results=mongoTemplate.mapReduce(
“collectionName”,
地图,
减少
新建MapReduceOptions().outputCollection(“col_out”),
ValueObject.class
);
//从输出集合col_out中获取不同的键---
List fieldsPerset=mongoTemplate.getCollection(“col_out”).distinct(“\u id”);