如何将日期格式从对象的猫鼬数组更改为 ejs 视图上的字符串?
Posted
技术标签:
【中文标题】如何将日期格式从对象的猫鼬数组更改为 ejs 视图上的字符串?【英文标题】:How to change the date format from a mongoose array of object to string on ejs view? 【发布时间】:2021-07-26 12:11:55 【问题描述】:这是我的猫鼬模型
var agentSchema = new Schema(
name: String,
debit: [
date: Date,
amount: Number,
hint: String,
],
)
我需要从借方数组中获取日期并在 ejs 视图上将其更改为 dd:mm:yyyy 格式
我尝试了几种通过 datetostring 转换进行投影的方法,但它仅适用于 mongoose 对象,不适用于对象数组。
【问题讨论】:
如果你在ejs中也分享你的代码会更好 【参考方案1】:从 Date 对象中获取各个组件,并根据所需的行为将它们放置在模板文件中
let day = debit[0].date.getDate();
let month = debit[0].date.getMonth();
let year = debit[0].date.getFullyear();
【讨论】:
感谢回复【参考方案2】:您可以使用$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"
]
【讨论】:
以上是关于如何将日期格式从对象的猫鼬数组更改为 ejs 视图上的字符串?的主要内容,如果未能解决你的问题,请参考以下文章