gpt4 book ai didi

Mongodb:在 $convert 中不支持从数组到 objectId 的转换,没有 onError 值

转载 作者:行者123 更新时间:2023-12-05 00:48:02 24 4
gpt4 key购买 nike

我使用 mongodb 4.0.5。我正在使用查找来加入两个集合,外键是位于 request_by 数组中的字符串值,另一个是对象标识

{
$addFields: {
convertedId: {
$toObjectId: "$request_by.userId"
}
}
}

我想将外键转换为 ObjectId,以便加入它们。但它说“在 $convert 中不支持从数组到 objectId 的转换,没有 onError 值”

我有一个类似这样的数据:

Simulation collection
{
"_id": "8f361e8969948e1c435c06d7",
"request_by": [{
"userId": "ae83ccfa592f4963a395263c",
"iat": 1544801930,
"exp": 1544819930
}],
"status": "finish",
"start": "2018-12-14T15:39:29.588Z",
"end": "2018-12-14T16:59:29.538Z",
"duration": 80,
"passing_grade": 100,
"created_at": "2018-12-14T15:39:29.588Z",
"updated_at": "2018-12-14T15:43:12.897Z",
"__v": 0
}

如果我有这样的数据,我如何加入他们?

最佳答案

您需要 $map由于 request_by 是一个数组,那么您可以将该数组直接传递给 $lookup (连接单个字段或数组)。

{
$addFields: {
convertedId: {
$map: {
input: "$request_by",
as: "r",
in: { $toObjectId: "$$r.userId" }
}
}
}
}

关于Mongodb:在 $convert 中不支持从数组到 objectId 的转换,没有 onError 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53901389/

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