如何在 ejs 视图上将日期格式从猫鼬对象数组更改为字符串?
How to change the date format from a mongoose array of object to string on ejs view?
这是我的猫鼬模型
var agentSchema = new Schema({
name: String,
debit: [{
date: Date,
amount: Number,
hint: String,
}],
})
我需要从借记数组中获取日期并在 ejs 视图中将其更改为 dd:mm:yyyy 格式
我尝试了几种通过 datetostring 转换进行投影的方法,但它仅适用于 mongoose 对象,不适用于对象数组。
从 Date 对象中获取各个组件,并根据需要的行为将它们放置在模板文件中
let day = debit[0].date.getDate();
let month = debit[0].date.getMonth();
let year = debit[0].date.getFullyear();
您可以在 $project
阶段使用 $map
管道运算符来
对数组的每个元素应用条件。
db.collection.aggregate([
{
"$project": {
"name": 1,
"debit": {
"$map": {
"input": "$debit",
"as": "d",
"in": {
"date": {
"$dateToString": {
"date": "$$d.date",
"format": "%d:%m:%Y",
// "onNull": "" // If Required
}
},
"amount": "$$d.amount",
"hint": "$$d.hint",
}
}
}
}
}
])
这将提供以下输出。
[
{
"_id": ObjectId("5a934e000102030405000000"),
"debit": [
{
"amount": 23535,
"date": "06:02:2021",
"hint": "StringHint"
},
{
"amount": 2355,
"date": "16:03:2021",
"hint": "StringHint1"
}
],
"name": "String"
},
{
"_id": ObjectId("5a934e000102030405000001"),
"debit": [
{
"amount": 25,
"date": "22:06:2021",
"hint": "StringHint2"
},
{
"amount": 55,
"date": "01:07:2021",
"hint": "StringHint3"
}
],
"name": "String"
}
]
这是我的猫鼬模型
var agentSchema = new Schema({
name: String,
debit: [{
date: Date,
amount: Number,
hint: String,
}],
})
我需要从借记数组中获取日期并在 ejs 视图中将其更改为 dd:mm:yyyy 格式
我尝试了几种通过 datetostring 转换进行投影的方法,但它仅适用于 mongoose 对象,不适用于对象数组。
从 Date 对象中获取各个组件,并根据需要的行为将它们放置在模板文件中
let day = debit[0].date.getDate();
let month = debit[0].date.getMonth();
let year = debit[0].date.getFullyear();
您可以在 $project
阶段使用 $map
管道运算符来
对数组的每个元素应用条件。
db.collection.aggregate([
{
"$project": {
"name": 1,
"debit": {
"$map": {
"input": "$debit",
"as": "d",
"in": {
"date": {
"$dateToString": {
"date": "$$d.date",
"format": "%d:%m:%Y",
// "onNull": "" // If Required
}
},
"amount": "$$d.amount",
"hint": "$$d.hint",
}
}
}
}
}
])
这将提供以下输出。
[
{
"_id": ObjectId("5a934e000102030405000000"),
"debit": [
{
"amount": 23535,
"date": "06:02:2021",
"hint": "StringHint"
},
{
"amount": 2355,
"date": "16:03:2021",
"hint": "StringHint1"
}
],
"name": "String"
},
{
"_id": ObjectId("5a934e000102030405000001"),
"debit": [
{
"amount": 25,
"date": "22:06:2021",
"hint": "StringHint2"
},
{
"amount": 55,
"date": "01:07:2021",
"hint": "StringHint3"
}
],
"name": "String"
}
]