gpt4 book ai didi

node.js - Node js mongoose如何从两个集合中获取记录

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:29 25 4
gpt4 key购买 nike

在下面的集合中,我想尝试从 coin_infos 集合中获取与 coin_infos_idcoin_id 匹配的所有记录> wallet_infosuser_id

coin_infos 集合

_id:objectID(5a4b07b2a0050c20a6be44b3),
coin_code:BTC,
wallet_name:bitcoin,
deposite_txn_fee:3,
min_withdrawn:5,
withdrawn_txn_fee:0.001,

wallet_infos 集合

 _id:objectID(5a58a4e222068e053d71220d),
user_id:5a4b0787a0050c20a6be44b2,
coin_id:5a4b07b2a0050c20a6be44b3,
balance:3.122858,

我的用户 ID -:5a4b0787a0050c20a6be44b2

输出如下:..

{

_id:objectID(5a4b07b2a0050c20a6be44b3),
coin_code:BTC,
wallet_balance:3.122858,
wallet_name:bitcoin,
deposite_txn_fee:3,
min_withdrawn:5,
withdrawn_txn_fee:0.001,

"match_records" : [

_id:objectID(5a58a4e222068e053d71220d),
user_id:5a4b0787a0050c20a6be44b2,
coin_id:5a4b07b2a0050c20a6be44b3,
balance:3.122858,
]
}

我的mongoDB版本是3.2.11。

最佳答案

您可以使用 $lookup$match 聚合管道,就像您已经在 mongo 版本 3.2+ 上一样

$lookupcoin_id 上的 wallet_infos 加入到 coin_infos 集合中,如果找到匹配,钱包信息将以嵌入文档的形式返回,从嵌入文档 user_id 中您可以进行 $match 和过滤

db.coin_infos.aggregate(
[
{
$lookup : {
from : "wallet_infos",
localField : "_id",
foreignField: "coin_id",
as : "walletInfo"
}
},
{$match : {"walletInfo.userId" : "5a4b0787a0050c20a6be44b2"}}
]
)

关于node.js - Node js mongoose如何从两个集合中获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48237026/

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