這是架構:
const mongoose = require("mongoose");
const OrderSchema = mongoose.Schema({
order_status: {
type: "String",
enum: ['Pending', 'Declined', 'Approved','Paid', 'Complete'],
default: "Pending",
},
},{ timestamps: true });
module.exports = mongoose.model("order", OrderSchema);
存盤在資料庫中的資料:
[
{
"_id": "61ceb03b76ed7e3b809bb15b",
"order_status": "Declined",
"createdAt": "2021-12-31T07:24:43.129Z",
"updatedAt": "2021-12-31T07:24:43.129Z",
"__v": 0
},
{
"_id": "61ceb04676ed7e3b809bb15e",
"order_status": "Paid",
"createdAt": "2021-12-31T00:00:00.000Z",
"updatedAt": "2021-12-31T07:24:54.951Z",
"__v": 0
},
{
"_id": "61ceb04f76ed7e3b809bb161",
"order_status": "Approved",
"createdAt": "2022-01-01T00:00:00.000Z",
"updatedAt": "2021-12-31T07:25:03.860Z",
"__v": 0
},
{
"_id": "61ceb05276ed7e3b809bb164",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:06.580Z",
"updatedAt": "2021-12-31T07:25:06.580Z",
"__v": 0
},
{
"_id": "61ceb05576ed7e3b809bb167",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:09.686Z",
"updatedAt": "2021-12-31T07:25:09.686Z",
"__v": 0
},
{
"_id": "61ceb06976ed7e3b809bb16d",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:29.569Z",
"updatedAt": "2021-12-31T07:25:29.569Z",
"__v": 0
},
{
"_id": "61ceb06d76ed7e3b809bb170",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:33.858Z",
"updatedAt": "2021-12-31T07:25:33.858Z",
"__v": 0
},
{
"_id": "61ceb07376ed7e3b809bb173",
"order_status": "Pending",
"createdAt": "2021-12-31T07:25:39.270Z",
"updatedAt": "2021-12-31T07:25:39.270Z",
"__v": 0
},
{
"_id": "61ceb07776ed7e3b809bb176",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:43.672Z",
"updatedAt": "2021-12-31T07:25:43.672Z",
"__v": 0
},
{
"_id": "61ceb07e76ed7e3b809bb179",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:50.963Z",
"updatedAt": "2021-12-31T07:25:50.963Z",
"__v": 0
},
{
"_id": "61ceb08276ed7e3b809bb17c",
"order_status": "Pending",
"createdAt": "2021-12-31T07:25:54.675Z",
"updatedAt": "2021-12-31T07:25:54.675Z",
"__v": 0
},
{
"_id": "61ceb08776ed7e3b809bb17f",
"order_status": "Complete",
"createdAt": "2021-12-31T07:25:59.616Z",
"updatedAt": "2021-12-31T07:25:59.616Z",
"__v": 0
},
{
"_id": "61ceb08d76ed7e3b809bb182",
"order_status": "Complete",
"createdAt": "2021-12-31T07:26:05.141Z",
"updatedAt": "2021-12-31T07:26:05.141Z",
"__v": 0
}
]
查詢:from = 2021-01-01T00:00:00.000Z和to = 2021-12-31T00:00:00.000Z 的值
let from = new Date("2021-01-01")
let to = new Date("2021-12-31")
return await OrderSchema.aggregate([
{$match : { createdAt: {
$gte: from, $lte: to
} }
}
])
使用上面的查詢我沒有得到任何記錄。當我在 DB 中將時間從 createdAt: "2021-12-31T07:26:05.141Z" 更改為 createdAt: "2021-12-31T00:00:00.000Z" 然后它作業正常。如何獲取從當前日期算起 1 個月或 1 周的記錄并解決時間問題?
uj5u.com熱心網友回復:
我認為這項作業可能適合您或單擊此處查看結果
2022-01-01 -->$lte更高的日期所以設定小于 2021-12-31 -->$gte更低的日期所以設定更大
db.collection.aggregate([
{
$match: {
$and: [
{
createdAt: {
$gte: "2021-12-31T00:00:00.000Z"
}
},
{
createdAt: {
$lte: "2022-01-01T00:00:00.000Z"
}
}
]
}
}
])
uj5u.com熱心網友回復:
我相信您需要 $and 運算子:
OrderSchema.aggregate([{
$match : {
$and: {
createdAt: { $gte: from },
createdAt: { $lte: to }
}
}
])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/399218.html
