- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个集合,其中包含两个对这个问题很重要的字段:一个类别和一个日期(为简单起见,我将只使用“昨天”和“今天”)。
// Sample Data
{ category: 1, date: ISODate("yesterday") }
{ category: 1, date: ISODate("today") }
{ category: 2, date: ISODate("yesterday") }
{ category: 2, date: ISODate("today") }
{ category: 3, date: ISODate("yesterday") }
现在,我正在修改一个查询,该查询将首先查询类别,然后按日期降序排序并限制为 1 个结果(按日期为我提供单个类别的最早记录。
db.collection("things").find({ category: 1 }).sort({ date: -1 }).limit(1)
// Result
{ category: 1, date: ISODate("today") }
效果很好。但是,我想要每个类别的最早记录。这意味着我不能使用限制运算符(因为我不知道在任何给定时间点有多少类别)并且我不能保证每个类别的每一天都有日期记录。
// Expected Result
{ category: 1, date: ISODate("today") }
{ category: 2, date: ISODate("today") }
{ category: 3, date: ISODate("yesterday") }
我玩过 distinct,但没有成功。
如何在单个查询中获取每个类别的最早日期的记录?
最佳答案
您可以按类别
$group
并使用$max
获取最早的日期:
db.things.aggregate([
{
$group: {
_id: "$category",
date: { $max: "$date" }
}
},
{
$project: {
_id: 0,
category: "$_id",
date: 1
}
}
])
关于mongodb - 如何按日期获取唯一约束的最早记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52281209/
我正在尝试将数据框中的两列转换为“良好”的日期和时间类,但到目前为止还没有取得太大成功。我尝试过各种类(timeDate、Date、timeSeries、POSIXct、POSIXlt >)但没有成功
我的 Spring Boot 应用程序中有 3 个监听器。只有一名听众应该从头开始阅读主题。如果我添加到 yml 文件中: spring.kafka.consumer.auto-offset-rese
我是 MySQL 新手。谁能告诉我这个问题的答案? 表 Requests,具有以下架构: 领域 |类型 请求编号(PK) |整数 请求日期 |日期 必填日期 |日期 接受日期 |日期 状态 |字符(1
我的 Broker 中有一个名为“test”的主题。我用 CLI 检查过。 我创建了一个 java 生产者来将消息发送到主题 test。我可以从 CLI 中使用它们。 .\kafka-console-
我是一名优秀的程序员,十分优秀!