[英]Searching for all properties of a document using aggregation and project with change in date format in mongoose
我的數據庫模型看起來像
{
email: { type: String, required: true },
name: { type: String, required: true },
projectId: { type: String, required: true },
createdAt: { type: Date, required: false },
updatedAt: { type: Date, required: false },
};
createdAt
的格式為2021-10-07T11:16:44.988Z
,我希望在從數據庫中獲取數據時,日期格式應該是2022-02-25
。 所以我像這樣向數據庫寫入查詢:
const { id } = req.params;
const participantList = await ParticipantModel.aggregate([
{ $match: { projectId: id } },
{ $limit: limitInt },
{ $skip: skipInt },
{
$project: {
Date: { $dateToString: { format: '%Y-%m-%d', date: '$createdAt' } },
},
},
]);
我得到的結果如下: -
{ _id: 6218e52f43ec044180e69b84, Date: '2022-02-25' },
{ _id: 6218e5f543ec044180e69b97, Date: '2022-02-25' },
]
預期結果
[
{ _id: 6218e52f43ec044180e69b84,email:'xyz@gmail.com', name:'xyz',projectId:"01A", Date: '2022-02-25',updatedAt: 2022-02-25T14:18:23.708Z},
{ _id: 6218e5f543ec044180e69b97, email:'abc@gmail.com', name:'abc',projectId:"01B",Date: '2022-02-25' , updatedAt: 2022-02-25T14:21:41.313Z,},
]
如何解決這個問題? 謝謝您的幫助。
在mongodb docs的$project
指南中,如果要顯示,請將每個字段的值設置為 1,或者將 0 設置為隱藏:
const { id } = req.params;
const participantList = await ParticipantModel.aggregate([
{$match:{projectId:id},},{$limit:limitInt},{$skip:skipInt},{$project:{
Date: { $dateToString: { format: "%Y-%m-%d", date: "$createdAt" } },
email: 1, name: 1, projectId: 1, updatedAt: 1
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.