gpt4 book ai didi

node.js - 如何计算 Mongoose 从开始日期到结束日期的总时间?

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:16 26 4
gpt4 key购买 nike

我们的用户架构是这样的......

const docSchema = new mongoose.Schema({
userType: {
type: String,
enum: [
'customer',
'driver'
]
},
userId: {
type: String,
refPath: 'userType'
},
device: {
type: String,
enum: [
'Android',
'IOS'
]
},
appVersion: {
type: String,
default: ''
},
deviceId: {
type: String,
default: ''
},
connected: {
type: Date,
default: ''
},
disconnected: {
type: Date,
default: ''
}
}, {
timestamps: true
});

现在,我们必须统计用户使用连接和断开连接的总在线时间,任何人都可以帮助我们如何实现这一目标?

最佳答案

从您的问题来看,似乎对于每个 session (即一次连接和断开连接),您都在 DocSchema 中为用户创建一个文档 [让我们调用模型 DocSchema ]。您想知道用户的总时间。您可以使用聚合

这是一个聚合示例,用于查找 userId searchKey 的总时间

Schema2.aggregate({
$match: {
userId: searchKey,
$project: {
diff: {
$subtract: ['$disconnected', '$connected']
}
},
$group: {
_id: 'justAGroupName',
total: {
$sum: '$diff'
}
}
}
});

有关更多信息,请查看 mongodb aggregation doc

关于node.js - 如何计算 Mongoose 从开始日期到结束日期的总时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com