最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

节点JS猫鼬如何从两个集合获取记录

IT培训 admin 12浏览 0评论

节点JS猫鼬如何从两个集合获取记录

在下面的那个收藏我想尝试从coin_infos_idcoin_infos coin_idwallet_infos收集匹配user_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总管道,因为你3.2+

$lookup加入与coin_infos wallet_infos coin_id集合,如果发现匹配,钱包信息将返回作为嵌入的文档,从嵌入文档,你可以USER_ID做$match和过滤器

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

节点JS猫鼬如何从两个集合获取记录

在下面的那个收藏我想尝试从coin_infos_idcoin_infos coin_idwallet_infos收集匹配user_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总管道,因为你3.2+

$lookup加入与coin_infos wallet_infos coin_id集合,如果发现匹配,钱包信息将返回作为嵌入的文档,从嵌入文档,你可以USER_ID做$match和过滤器

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

评论列表 (0)

  1. 暂无评论