gpt4 book ai didi

node.js - 如何使用 $lookup 和 DbRef 连接 MongoDB 和 NodeJS 中的两个集合?

转载 作者:可可西里 更新时间:2023-11-01 09:54:52 25 4
gpt4 key购买 nike

如果我有两个集合,其中一个有 dbref,如何使用 $lookup 和 dbref 加入?

最佳答案

DBref 是一个 BSON 对象,您不能使用它的值进行查找。

但是,有一种方法可以将 DBRef 对象转换为数组。 I have written an answer a few months ago describing how to do it.

简短说明

假设您有这样的 DBRef 对象:

myField: DBRef("otherCollection", ObjectId("582abcd85d2dfa67f44127e0")),

像这样在 myField 上使用 $objectToArray

db.myColl.aggregate([
{
$project: {
transformedDBRef: {$objectToArray: "$myField"},
}
},
])

结果将是一个包含两个对象的数组,一个对象用于引用,一个用于包含在 DBRef 中的 ObjectId,每个对象都有一个字段“k”和一个字段“v”。它看起来像这样:

transformedDBRef: [{"k" : "$ref","v" : "otherCollection"},{"k" : "$id","v" : ObjectId("582abcd85d2dfa67f44127e0")}

然后您可以 grep ObjectId。如需完整的解决方案,请查看上面的链接。

关于node.js - 如何使用 $lookup 和 DbRef 连接 MongoDB 和 NodeJS 中的两个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443828/

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