gpt4 book ai didi

mongodb - 过滤数组并返回特定属性

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

我有以下投影:

db.tickets.aggregate([
{
$match: {
"satisfaction_rating.id": {"$exists": true}
}
},
{
$project: {
"ticketId": "$id",
"employee": "$assignee.name",
"subject": "$subject",
"memberId": {
"$filter": {
"input": "$custom_fields",
"as": "field",
"cond": {"$eq": ["$$field.id", 24685851]}
}
},
"requester": "$requester.name",
"created": "$created_at",
"solved": "$metric_set.solved_at",
"resolutionTimeInHours": {"$trunc": {"$divide": ["$metric_set.full_resolution_time_in_minutes.business", 60]}},
"score": "$satisfaction_rating.score",
"comment": "$satisfaction_rating.comment"
}
},
{
$out: "satisfaction"
}]);

$filter 返回一个数组。我想要做的是选择第一个元素并获得一个属性,然后该属性应该绑定(bind)到 memberId 而不是具有一个元素的数组。

我四处寻找了一段时间,但没有找到合适的解决方案。谁能给我一个提示?

最佳答案

@user3100115 引导我走向正确的方向。

这是我的最终解决方案:

"memberId": {
"$let": {
"vars": {
"memberId": {
"$arrayElemAt": [
{"$filter": {
"input": "$custom_fields",
"as": "field",
"cond": {"$eq": ["$$field.id", 24685851]}
}}
,0]
}
},
"in": "$$memberId.value"
}
}

关于mongodb - 过滤数组并返回特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568761/

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