我对 MongoDb 和 Spring-data-Mongo 还很陌生。经过大量研究后,我能够使用以下查询在 MongoDB 中获得所需的结果,但现在我发现在 Spring-data-Mongo 模板中实现相同的逻辑非常困难。
逻辑很简单:
我在文档中有 2 个日期字段和 2 个整数字段。
expireLastModifiedD(整数表示天数),expireLastUsedD:(整数,表示天数),lastModified:(日期类型),lastUsed:(日期类型)。
我需要找到满足以下表达式的文档。
lastModified+expireLastModifiedD < NOW && lastUsed + expireLastUsedD < NOW
我已经创建了一个 MongoDB 查询,如下所示。
[
{
$project: {
expireLastModifiedD: 1,
expireLastUsedD: 1,
lastModified: 1,
lastUsed: 1,
NowSubtractLastModified: {
$toInt: {
$divide: [
{
$subtract: [
new ISODate(),
"$lastModified"
]
},
1000 * 60 * 60 * 24
]
}
},
NowSubtractLastused: {
$toInt: {
$divide: [
{
$subtract: [
new ISODate(),
"$lastUsed"
]
},
1000 * 60 * 60 * 24
]
}
}
}
},
{
$project: {
expireLastModifiedD: 1,
expireLastUsedD: 1,
lastModified: 1,
lastUsed: 1,
NowSubtractLastModified: 1,
NowSubtractLastused: 1,
isExpireLastModifiedDLTNowSubtractLastModified: {
$lt: [
"$expireLastModifiedD",
"$NowSubtractLastModified"
]
},
isExpireLastUsedDLTNowSubtractLastused: {
$lt: [
"$expireLastUsedD",
"$NowSubtractLastused"
]
}
}
},
{
$match: {
isExpireLastModifiedDLTNowSubtractLastModified: true,
isExpireLastUsedDLTNowSubtractLastused: true
}
}
]
我需要使用聚合在 Spring-data Mongo 模板中创建上述 MongoDb 查询的帮助。