gpt4 book ai didi

java - MongoDB java 查询

转载 作者:行者123 更新时间:2023-12-01 23:11:03 25 4
gpt4 key购买 nike

我有一个问题,因为我有一个存储数据的集合。每条记录都有添加到集合中的日期。我的问题是:我需要获取每天添加了多少个项目。我在 MongoDB 网页上发现了一些查询:

db.orders.find( { ord_dt: { $gt: new Date('01/01/2012') } } ).count()

我正在用 Java 编写所有内容,但不知道该怎么做。请宽容一点,我一周前就开始玩 MongoDB 了。非常感谢任何帮助。

编辑:我在堆栈溢出上发现了 mongo 聚合线程,其中用户想要按分钟计算记录,因为我想每天对它们进行计数,我想它应该如下所示:

db.so.insert( { date: new ISODate( "2013-08-05T15:24:15" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:19" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:25" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:32" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:24:45" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:25:15" ) } );
db.so.insert( { date: new ISODate( "2013-08-05T15:25:15" ) } );

db.so.aggregate( [
{ $group: {
_id: {
y: { '$year': '$date' },
m: { '$month': '$date' },
d: { '$dayOfMonth': '$date' },
},
count: { $sum : 1 }
} }
] );

但是不知道从哪里开始java实现。有什么建议吗? :(

最佳答案

您不需要日期字段来确定在哪个日期添加了多少项目吗?

    final MongoClient mongoClient = new MongoClient();
final DB db = mongoClient.getDB("DB_NAME");
final DBCollection collection = db.getCollection("COLLECTION_NAME");

final Map<String, Object> groupIdMap = new HashMap<String, Object>();
groupIdMap.put("year", new BasicDBObject("$year", "$date"));
groupIdMap.put("month", new BasicDBObject("$month", "$date"));
groupIdMap.put("day", new BasicDBObject("$dayOfMonth", "$date"));

final DBObject groupIdFields = new BasicDBObject("_id", new BasicDBObject(groupIdMap));

groupIdFields.put("count", new BasicDBObject("$sum", 1));
final DBObject group = new BasicDBObject("$group", groupIdFields);

final DBObject projectFields = new BasicDBObject("_id", 0);
projectFields.put("year", "$_id.year");
projectFields.put("month", "$_id.month");
projectFields.put("day", "$_id.day");
projectFields.put("count", 1);
final DBObject project = new BasicDBObject("$project", projectFields);

final AggregationOutput aggregate = collection.aggregate(group, project);

关于java - MongoDB java 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21969370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com