我需要每三天获取每个用户的交易。我想知道三天内没有达到一定数量(200)的用户,然后得到每个用户所有交易的总和。我想排除周日,因为周日的交易量总是很低。
我想确保这是从数据库中直接完成的,因为每个用户的交易可能会达到数千甚至数百万。
我正在使用 dayjs 来操纵时间,但我做得不对
我已经能够获得前三个日期和当前日期。前一个日期是 startDate,当前日期是 endDate。
但是如果星期日在范围内,我需要删除并使用它来查询数据库。
这就是我所做的,我还没有接近修复它。
如何按 dateCreated 查询事务表并排除星期日?
模式示例
export const TransactionSchema = new mongoose.Schema({
description: {
type: String
},
ref: {
type: String,
required: true
},
userID: {
type: mongoose.SchemaTypes.ObjectId,
ref: 'User'
},
amount: {
type: Number,
required: true,
},
commission: {
type: Number,
default: 0
},
responseDescription: {
type: String
},
authCode: {
type: Number
},
isDeleted: {
type: Boolean,
default: false
},
dateCreated: {
type: Date,
default: Date.now
},
dateUpdated: {
type: Date,
required: false
},
openingBalance: {
type: Number
},
closingBalance: {
type: Number
},
})
方法
async getUserRequiredTargetTrans() {
let now = dayjs();//endDate
let fromThreeDays = now.subtract('2', 'day')
let sunday = now.day(0)
let withOutSunday = now.diff(fromThreeDays);//startDate
const response = await this.transactionModel.find({ isDeleted: false, dateCreated: { $gte: withOutSunday, $lt: now } })