作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个字段 timeIn
和 arrivalTime
在我的 mongodb 集合中。 timeIn 字段表示用户应该到达的时间,arrivalTime 表示实际到达时间。
timeIn:"2020-05-24T18:31:00.000Z",
arrivalTime:2020-05-27T02:36:37.558+00:00
timeIn
和
arrivalTime
这样我就可以将那些在 timeIn 之后到达的人标记为“迟到”。
$project: {
name: 1,
isPresent: {
$cond: {
if: {
$lte: [ISODate("$arrivalTime"), ISODate("$timeIn")]
},
then: true,
else: false
}
}
}
最佳答案
如果您将日期存储为字符串,则可以比较两者(作为字符串),前提是您确保它们始终采用相同的格式和时区。
$project: {
name: 1,
isPresent: {
$cond: {
if: {
$lte: ["$arrivalTime","$timeIn"]
},
then: true,
else: false
}
}
}
Date
.这将需要您更新您的代码和数据库,但在我看来将是最好的长期解决方案。 $project: {
name: 1,
isPresent: {
$cond: {
if: {
$lte: [{$dateFromString: {dateString: "$arrivalTime"}},
{$dateFromString: {dateString: "$timeIn"}}]
},
then: true,
else: false
}
}
}
关于mongodb - 如何在 mongodb 查询中比较两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62061008/
我是一名优秀的程序员,十分优秀!