【发布时间】:2022-01-29 03:10:26
【问题描述】:
我有这个简单的文档设置:
-
dateAdded: 日期格式为 'YYYY-MM-DD' 的字符串 -
lastFetched: 日期对象(ISODatemongodb 语言)
{
lastFetched: 2021-03-01T09:27:07.406+00:00
dateAdded: "2020-12-19"
}
如何找到lastFetched 小于dateAdded 的文档?比如:
db.collection.find( { lastFetched: {$lt: ISODate('$dateAdded')} } )
为此,我首先需要将lastFetched 转换为日期字符串,或将dateAdded 转换为ISODate 对象。
但更重要的是:如何将字段的值用作条件检查的输入?更简单的版本是:
{
lastFetched: "2021-03-01"
dateAdded: "2020-12-19"
}
使用以下伪查询:
db.collection.find( { lastFetched: {$lt: '$dateAdded'} } )
我已经尝试使用$addFields(聚合)作为第一步:
{
date: ISODate('$dateAdded')
}
但这只是给了我1970-01-01T00:00:00.000+00:00的日期。
非常欢迎任何帮助!
谢谢
【问题讨论】:
-
查看$expr 运算符
标签: node.js mongodb mongodb-query