在下面的查询中
{ $group : {
_id : { success:'$success', responseCode:'$responseCode', label:'$label'},
max_timeStamp : { $timeStamp : 1 },
count_responseCode : { $sum : 1 },
avg_value : { $sum : "$value" },
count_success : { $sum : 1 }
}}
如何将id{success:'$success',responseCode:'$responseCode',label:'$label},转换为在java mongodb驱动程序中使用。
我试过了
BasicDBList list = new BasicDBList();
list.add(new BasicDBObject("success", "$success"));
list.add(new BasicDBObject("responseCode", "$responseCode"));
list.add(new BasicDBObject("label", "$label"));
AggregationOutput output = collection.aggregate(match, project, group);
和
多维数组
String [][] muitiGroupBy = {{"success", "$success"},{"responseCode", "$responseCode"},{"label", "$label"}};
等
但结果总是这样
"_id" : [ { "success" : "$success"} , { "responseCode" : "$responseCode"}]
如果我只使用一个字段,它就会工作。
DBObject groupFields=new BasicDBObject(“\u id”,new BasicDBObject(“success”,“$success”));
我可以通过以下代码实现这一点(grails代码和mongo-java-driver-3.2):
DBObject groupFields = new BasicDBObject()
groupFields.put('success', "\$success")
groupFields.put('responseCode', "\$responseCode")
groupFields.put('label', "\$label")
def result = collection.aggregate(Arrays.asList(Aggregates.group(groupFields, []))).iterator()
我也有类似的需求,在多次尝试将聚合操作转换为Java客户端可以处理的内容失败后,titogeo在2013年的回答引导我朝着正确的方向前进。这就是我使用的:
MongoCollection<Document> myCollection = myDB.getCollection("myCollection");
Map<String, Object> multiIdMap = new HashMap<String, Object>();
multiIdMap.put("groupField1", "$groupField1");
multiIdMap.put("groupField2", "$groupField2");
Document groupFields = new Document(multiIdMap);
AggregateIterable<Document> aggregate = myCollection.aggregate(Arrays.asList(
Aggregates.group(groupFields,
Accumulators.last("lastDate", "$dateCreated"),
Accumulators.last("lastNumAvail", "$availableUnits")
)
));
我得到了匹配结果所需的准确信息:
db.myCollection.aggregate([
{"$group":{ "_id":{
groupField1: "$groupField1",
groupField2: "$groupField2"},
lastDate:
{"$last":"$dateCreated"},
lastNumAvail:
{"$last":"$availableUnits"}
}
}
]);
我们确实想出了办法。我们可以用这个来实现。
Map<String, Object> dbObjIdMap = new HashMap<String, Object>();
dbObjIdMap.put("success", "$success");
dbObjIdMap.put("responseCode", "$responseCode");
dbObjIdMap.put("label", "$label");
DBObject groupFields = new BasicDBObject( "_id", new BasicDBObject(dbObjIdMap));
我的目标是使用聚合框架创建一个管道来对我的数据进行分组,然后将这个管道与java驱动程序一起使用。MongoDB v4.0.3 我使用MongoDB Compass创建了以下管道(减少到重要部分): 这导致以下(生成的)Java代码: 集合中$组阶段之前的数据如下所示: $组阶段应返回以下数据结构: 问题所在 Mongo Compass按预期预览了阶段的结果,但使用java驱动程序的阶段的结果非常
我目前正在为Mac开发打印机驱动程序,它应该支持PS(postscript)和PCL打印机。我已经有了支持PS的想法(通过在PPD和PDE中定义自定义CUPS postscript过滤器)。 我不知道的是支持PCL打印机。 a) CUPS是否自动支持PCL? b)如果a)的答案为YES,则在打印到PCL打印机时会调用我的PS过滤器吗?(我在PS过滤器中的打印数据中添加一些PJL)。 c)如果a)的
我试图重写Spark的默认,但运气不好。我尝试将以下内容添加到Spark-Submit中: 但那似乎不起作用。我还尝试在中使用选项,但似乎也不起作用。是否有人设置了日志记录,所以每个驱动程序都有文件,而不使用默认值?
问题内容: 我需要从头开始为omap4编写SPI Linux字符设备驱动程序。我知道编写设备驱动程序的一些基础知识。但是,我不知道如何从头开始编写平台特定的设备驱动程序。 我已经编写了一些基本的char驱动程序,并且我认为编写SPI设备驱动程序将与此类似。Char驱动程序的结构包含在驱动程序中实现的功能。 现在,我将以spi-omap2-mcspi.c代码作为参考,以获取从零开始开发SPI驱动程序
我对蒙哥有点陌生。我想在一个字段上查询多个值。在SQL中,我想要这样的内容: 但这似乎只返回“bar”文档。 请帮忙
问题内容: 我正在尝试找到可以与Go一起使用的MySql驱动程序,该驱动程序支持在一个调用中发出多个SQL语句。例如,我可能希望使用以下SQL创建数据库: 在PHP之类的语言中,您可以将两个SQL语句放在一个字符串中,然后一次性执行,如下所示: 我需要这个的原因是因为我有SQL转储(来自),我想以编程方式应用于各种数据库。 我在Go中寻找相同的功能,但似乎所有不同的驱动程序都不支持它,坦率地说,这