当前位置: 首页 > 知识库问答 >
问题:

使用java mongo驱动程序在java中实现mongodb查询

文心思
2023-03-14

我使用下面的mongo查询来获取最高温度。有人能帮助我们如何使用mongo java驱动程序,使用BasicDBObjectDBObject在java中实现吗?

db.EventLog.aggregate(
   [
     {
       $group:
         {
           _id: "$_id",
           maxInnerTemp: { $max: { $concat : [ "0", "$fields.innerTemp"]}}
         }
     }
   ]
)

共有1个答案

诸葛品
2023-03-14

使用mongo java聚合,如以下代码(未经测试):

 // $group operation
 BasicDBList concat = new BasicDBList();
 concat.add("0");
 concat.add("$fields.innerTemp");
 DBObject groupFields = new BasicDBObject("_id", "$_id");
 groupFields.put("maxInnerTemp", new BasicDBObject("$max", new BasicDBObject("$concat", concat)); 
 DBObject group = new BasicDBObject("$group", groupFields);
     // run aggregation
     List < DBObject > pipeline = Arrays.asList(group); AggregationOutput output = collectionName.aggregate(pipeline);
     for (DBObject result: output.results()) {
       System.out.println(result);
     }
 类似资料:
  • 通过使用MongoDB和Java驱动程序,我有一个用户集合,我想根据他们的ObjectId进行查询(总体情况:我从ObjectId推断出对象的创建时间戳)。 问题是,用ObjectId查询似乎不起作用:我总是没有结果。为了测试的目的,我在搜索查询中硬编码了数据库中现有用户的ObjectId,只是为了确保我能得到结果: {“_id”:ObjectId(“565ef85ee4b0a4db3c2fc96

  • 我试图在MongoDB\驱动程序\查询中使用选项: 如果$选项似乎可以: --------$options: 数组([排序]= $query没有给我好的选项: 限制和批量大小不等于20,为什么?请问怎么办? 提前感谢

  • 这是我到目前为止所拥有的: 一个基于Webdriver的Java类,它可以登录到应用程序并进入主页: 现在我们看到有两页:1。登录页面,其中我必须输入用户名和密码,以及主页,一旦身份验证成功,我将被带到这里。 现在我想使用Pagefactory将其实现为PageObjects: 对于登录页面,我不确定如何实现它,以及调用这些页面的测试。

  • 我正在尝试使用MongoDBJava驱动程序作为聚合命令的一部分创建查询。目前我允许日期范围或特定日期数组作为参数。例如 日期范围查询工作正常,我解析xml并将其转换为在mongo中生成以下查询的DBObject; 对于指定日期,我只想返回在给定日期的00:00:00.000和第二天的00:00:00.000之间发生的结果。根据我对mongo查询的基本了解,我希望做一个类似于日期范围的$匹配,但是

  • 问题内容: 我正在尝试使用servlet上的Java驱动程序连接到mlab上托管的MongoDB数据库。 问题是我遇到以下错误: 我看了一个答案(如何解决ClassNotFoundException:com.mongodb.connection.BufferProvider?),该答案向我强调了我需要其他jar,自从我下载了这些jar之后,仍然出现此错误。 我正在使用Eclipse并将这三个jar

  • 问题内容: 我正在尝试通过搜索“ _id”键在MongoDB中查找文档。我的文件看起来像这样- 我正在尝试将此文档搜索为- 但我得到以下错误- BasicDBObject的append方法支持(字符串键,值),如果我将“ _id”作为String传递给此方法,则不会匹配任何文档。 所以我的问题是如何传递“ _id”? 问题答案: 通过使用as作为查询来解决