Java 在新集合中的多个id字段上保存Mongodb聚合结果
我必须通过java驱动程序在mongodb中聚合一些数据,并将聚合结果保存在新集合中,然后在Jtable中打印此集合;在我的情况下,id字段可能并不简单,我不知道它是否为单个值,因此我遵循以下步骤: 如果要将结果保存到新集合中,请执行以下操作:Java 在新集合中的多个id字段上保存Mongodb聚合结果,java,mongodb,aggregation-framework,Java,Mongodb,Aggregation Framework,我必须通过java驱动程序在mongodb中聚合一些数据,并将聚合结果保存在新集合中,然后在Jtable中打印此集合;在我的情况下,id字段可能并不简单,我不知道它是否为单个值,因此我遵循以下步骤: 如果要将结果保存到新集合中,请执行以下操作: for (DBObject result : output.results()) { report.insert(result); } 我有一个错误: 线程AWT-EventQueue-0 java.lang.IllegalA
for (DBObject result : output.results()) {
report.insert(result);
}
我有一个错误:
线程AWT-EventQueue-0 java.lang.IllegalArgumentException中出现异常:数据库中存储的字段不能包含。在他们里面。坏键:“store.address.store\u state”
这是我进行聚合的集合的一部分:
{
"_id" : ObjectId("549ef5d17c8db9efa75d49c9"),
"store" : {
"store_id" : NumberLong(2),
"store_type" : "Small Grocery",
"region_id" : NumberLong(78),
"store_name" : "Store 2",
"store_number" : NumberLong(2),
"address" : {
"store_street_address" : "5203 Catanzaro Way",
"store_city" : "Bellingham",
"store_state" : "WA",
"store_postal_code" : "55555",
"store_country" : "USA",
"store_manager" : "Smith"
},
.....}
有人能帮我吗
注意:ID字段可以是简单字段,也可以是复杂的两个或多个字段
我要创建的新集合必须包含聚合中构成ID的所有字段,并且所有字段都是聚合的结果。这是因为我必须以这种方式打印该收藏:
例如:
DBObject fields = new BasicDBObject("unit_sales", 1);
fields.put("store.store_type", 1);
fields.put("store.store_name", 1);
fields.put("store.address.store_city", 1);
fields.put("_id", 0);
DBObject project = new BasicDBObject("$project", fields );
Map<String, Object> dbObjIdMap = new HashMap<String, Object>();
dbObjIdMap.put("store_type", "$store.store_type");
dbObjIdMap.put("store_name", "$store.store_name");
dbObjIdMap.put("store_city", "$store.address.store_city");
DBObject groupFields = new BasicDBObject( "_id", dbObjIdMap);
groupFields.put("average", new BasicDBObject("$avg", "$unit_sales"));
DBObject group = new BasicDBObject("$group", groupFields);
AggregationOutput output = collection.aggregate(project, group);
因此,我想要一个列为store\u type、store\u name、store\u city、average的表
我知道我在这里暴露了我的问题,但我不是英国人,而且我的英语说得不好,所以请试着理解我。。抱歉错误清楚地表明,您试图持久保存到mongoDB的文档中的字段名不能存在。在他们里面。您能否打印和更新您的帖子以反映您试图在报告中插入的文档。插入…您可以添加您的请求吗?抱歉,我现在添加请求