我在 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。如果當前日期是這些日期之一,請獲取此檔案。
uj5u.com熱心網友回復:
您可以在聚合查詢中使用$dateAdd ,如下所示:
注意這里只需要一個$match階段$expr來獲取檔案,其中:
- 當前日期 (
$$NOW) 大于或等于$start_date。 - 當前日期 (
$$NOW) 小于或等于加上 X 周的計算日期。
即找到的日期介于$start_datestart_date X 周之間。
db.collection.aggregate([
{
"$match": {
"$expr": {
"$and": [
{
"$gte": [
"$$NOW",
"$start_date"
]
},
{
"$lte": [
"$$NOW",
{
"$dateAdd": {
"startDate": "$start_date",
"unit": "week",
"amount": "$type_quantity"
}
}
]
}
]
}
}
}
])
此處示例添加更多檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/427371.html
標籤:节点.js mongodb 猫鼬 mongodb查询 日期范围
上一篇:如何使貓鼬區分大小寫?
