如何在猫鼬中将对象字段作为数组获取?
Posted
技术标签:
【中文标题】如何在猫鼬中将对象字段作为数组获取?【英文标题】:How to get an object field as an array in mongoose? 【发布时间】:2020-10-17 04:24:14 【问题描述】:您好,我有一个如下所示的 mongoose 架构,
const followingFollowersSchema = mongoose.Schema(
follower:
type: mongoose.Schema.ObjectId,
ref: 'User'
,
following:
type: mongoose.Schema.ObjectId,
ref: 'User'
,
);
我在调用时创建了一个路由,它过滤当前登录用户正在关注的所有用户并显示以下输出,
"status": "success",
"results": 1,
"data":
"following": [
"_id": "5ef4cd0205070d87156e19da",
"following":
"_id": "5eeb92d69fceed6d91ad5743",
"name": "X Y"
]
但我想显示这样的输出,
"status": "success",
"results": 1,
"data":
"following": [
"_id": "5eeb92d69fceed6d91ad5743",
"name": "X Y"
]
我怎样才能做到这一点?任何帮助将不胜感激。
【问题讨论】:
查看这篇文章:alexanderzeitler.com/articles/… 【参考方案1】:您可以使用$addFields 替换现有字段并使用$map 转换内部数组:
let result = Model.aggregate([
$addFields:
"data.following":
$map:
input: "$data.following",
in: "$$this.following"
])
Mongo Playground
【讨论】:
以上是关于如何在猫鼬中将对象字段作为数组获取?的主要内容,如果未能解决你的问题,请参考以下文章