gpt4 book ai didi

javascript - 重命名填充返回值 Mongoose

转载 作者:可可西里 更新时间:2023-11-01 09:06:26 27 4
gpt4 key购买 nike

我正在尝试返回返回的属性,就像在 MysqlAS 中一样。但具有重命名的对象属性。

查询

Games.find({leagueID:leagueID, result:{$ne: null}}).populate('home_id away_id').sort({date: -1}).execAsync()

输出

{
home_id: {
...some details
},
away_id: {
...some details
}
}

期望的输出

{
home: {
...some details
},
away: {
...some details
}
}

那么我怎样才能得到想要的结果呢?

最佳答案

我的解决方案是使用转换函数。

GamesSchema.set('toJSON', {
transform: function(doc, ret, options) {
if (mongoose.Types.ObjectId.isValid(ret.home)) {
ret.homeId = ret.home;
delete ret.home;
}
if (mongoose.Types.ObjectId.isValid(ret.away)) {
ret.awayId = ret.away;
delete ret.away;
}
}
});

没有填充:

输入

{
"_id": "sD95OhsGrWVIqmTLVeuQdkna",
"leagueID": 1000,
"home": "404d1d9f68c3bb386b50f440" // ObjectId
"away": "504d1d9f68c3bb386b50f450" // ObjectId
}

输出

{
"_id": "sD95OhsGrWVIqmTLVeuQdkna",
"leagueID": 1000,
"homeId": "404d1d9f68c3bb386b50f440"
"awayId": "504d1d9f68c3bb386b50f450"
}

填充:

输入

{
"_id": "sD95OhsGrWVIqmTLVeuQdkna",
"leagueID": 1000,
"home": "404d1d9f68c3bb386b50f440" // ObjectId
"away": "504d1d9f68c3bb386b50f450" // ObjectId
}

输出

{
"_id": "sD95OhsGrWVIqmTLVeuQdkna",
"leagueID": 1000,
"home": {
"_id": "404d1d9f68c3bb386b50f440",
"name": "Home"
}
"away": {
"_id": "504d1d9f68c3bb386b50f450",
"name": "Away"
}
}

关于javascript - 重命名填充返回值 Mongoose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777234/

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