gpt4 book ai didi

mongodb - $lookup 其中 id 字段是不同类型的

转载 作者:可可西里 更新时间:2023-11-01 10:42:13 26 4
gpt4 key购买 nike

我有 2 个集合:交易和账户。

我需要将账户加入交易,以便我可以在 Accounts.acctType 字段上分组。问题是 Transactions.accountId 是“字符串”类型,而 Accounts._id 是“Int32”类型。

有没有办法在不更改 Transactions.accountId 类型的情况下解决这个问题?

当前查找代码:

$lookup: {
from: 'accounts',
localField: accountId,
foreignField: '_id',
as: 'accountData'
}

我需要什么:

$lookup: {
from: 'accounts',
localField: Number(accountId), //something like this
foreignField: '_id',
as: 'accountData'
}

或者:

$lookup: {
from: 'accounts',
localField: accountId,
foreignField: '_id.toString()', //or something like this
as: 'accountData'
}

最佳答案

您可以 $project您的文档并使用 $toLower将“交易”“_id”字段转换为字符串。

db.Transaction.aggregate(
[
{ "$project": { "_id": { "$toLower": "$_id" } } }, // You need include all the fields you want in your result.
{ "$lookup": {
"from": "accounts",
"localField": "accountId",
"foreignField": "_id",
"as": "accountData"
}}
]
)

关于mongodb - $lookup 其中 id 字段是不同类型的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732997/

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