猫鼬获取日期和周数具有当前日期的所有文档
Mongoose get all documents where date and number of weeks have current date
我在 mongoDB 中有此类文档。
{
_id:620df4541571891a71dfa372
user_id:61cc109f967b757d484fbf3b
instrument_type:"binance"
sub_instrument:"BTC/USDT"
start_date:2022-02-17T00:00:00.000+00:00
type_quantity:2
prediction:"High"
points:12
price:null
run_at:null
createdAt:2022-02-17T07:08:04.633+00:00
updatedAt:2022-02-17T07:08:04.633+00:00
}
这里是开始日“start_date”。 “type_quantity”这是从开始日算起的周数。
示例: 如果“start_date”为 2022-02-17T00:00:00.000+00:00,“type_quantity”为 2。然后,每周的日期将变为 2022-02-17、2022-02-24 和 2022-03-03。如果当前日期是这些日期之一,则获取此文档。
您可以像这样在聚合查询中使用 $dateAdd:
注意这里只需要一个 $match
阶段 $expr
来获取文档,其中:
- 当前日期 (
$$NOW
) 大于或等于 $start_date
。
- 当前日期 (
$$NOW
) 小于或等于计算日期加上 X 周。
即找到的日期介于 $start_date
和 start_date + X 周之间。
db.collection.aggregate([
{
"$match": {
"$expr": {
"$and": [
{
"$gte": [
"$$NOW",
"$start_date"
]
},
{
"$lte": [
"$$NOW",
{
"$dateAdd": {
"startDate": "$start_date",
"unit": "week",
"amount": "$type_quantity"
}
}
]
}
]
}
}
}
])
示例 here 添加更多文档。
我在 mongoDB 中有此类文档。
{
_id:620df4541571891a71dfa372
user_id:61cc109f967b757d484fbf3b
instrument_type:"binance"
sub_instrument:"BTC/USDT"
start_date:2022-02-17T00:00:00.000+00:00
type_quantity:2
prediction:"High"
points:12
price:null
run_at:null
createdAt:2022-02-17T07:08:04.633+00:00
updatedAt:2022-02-17T07:08:04.633+00:00
}
这里是开始日“start_date”。 “type_quantity”这是从开始日算起的周数。
示例: 如果“start_date”为 2022-02-17T00:00:00.000+00:00,“type_quantity”为 2。然后,每周的日期将变为 2022-02-17、2022-02-24 和 2022-03-03。如果当前日期是这些日期之一,则获取此文档。
您可以像这样在聚合查询中使用 $dateAdd:
注意这里只需要一个 $match
阶段 $expr
来获取文档,其中:
- 当前日期 (
$$NOW
) 大于或等于$start_date
。 - 当前日期 (
$$NOW
) 小于或等于计算日期加上 X 周。
即找到的日期介于 $start_date
和 start_date + X 周之间。
db.collection.aggregate([
{
"$match": {
"$expr": {
"$and": [
{
"$gte": [
"$$NOW",
"$start_date"
]
},
{
"$lte": [
"$$NOW",
{
"$dateAdd": {
"startDate": "$start_date",
"unit": "week",
"amount": "$type_quantity"
}
}
]
}
]
}
}
}
])
示例 here 添加更多文档。