【问题标题】:MongoDB Full Text Search after joining 2 collections through a foreign key通过外键加入 2 个集合后的 MongoDB 全文搜索
【发布时间】:2018-12-11 12:43:53
【问题描述】:

我有一个名为Team 的集合。示例文档如下所示 -

{ 
"_id" : "TEA000000006", 
"name" : "Team 1rrr", 
"teamMembers" : [
    {
        "_id" : "1", 
        "employeeRef" : "000000", 
        "teamRoleRef" : "TMR000000012"
    }, 
    {
        "_id" : "2", 
        "employeeRef" : "27375", 
        "teamRoleRef" : "TMR000000012"
    }, 
    {
        "_id" : "3", 
        "employeeRef" : "15607", 
        "teamRoleRef" : "TMR000000012"
    }, 
    {
        "_id" : "4", 
        "employeeRef" : "52321", 
        "teamRoleRef" : "TMR000000012"
    }, 
    {
        "_id" : "5", 
        "employeeRef" : "000000", 
        "teamRoleRef" : "TMR000000016"
    }, 
    {
        "_id" : "6", 
        "employeeRef" : "27375", 
        "teamRoleRef" : "TMR000000016"
    }, 
    {
        "_id" : "7", 
        "employeeRef" : "15607", 
        "teamRoleRef" : "TMR000000035"
    }, 
    {
        "_id" : "8", 
        "employeeRef" : "52321", 
        "teamRoleRef" : "TMR000000035"
    }
]
}

我还有一个收藏 - TeamMember。一个文件看起来像这样 -

{
"_id" : "1",
"teamId" : "TEA000000006",
"employeeRef" : "000000",
"memberDisplayName" : "Anonoymous",
"memberTitle" : "BPO",
"memberLocation" : "Earth, Milkyway, Universe",
"memberBusinessPhone" : "123456789",
"memberEmail" : "anon@anon",
"teamRoleRef" : "TMR000000012",
"teamRoleSequence" : "4",
"roleName" : "Analyst"
}

通过Team搜索时,我需要通过teamRoleRef键将TeamMember集合加入Team。

如何在 MongoDB v3.4 和 Java MongoDB Driver (v2.0.6.RELEASE) 中执行此操作并为此编写代码

【问题讨论】:

    标签: mongodb mongodb-query mongodb-java


    【解决方案1】:
    db.Team.aggregate([
                    {"$unwind" : "$teamMembers"},
                    {"$project" : {"teamRoleRef" : "$teamMembers.teamRoleRef"}},
                    {"$lookup" : {
                        "from" : "TeamMember",
                        "localField" : "teamRoleRef",
                        "foreignField" : "teamRoleRef",
                        "as" : "teamMember_docs"
                    }}])
    

    $lookup

    Java 驱动程序 Refer this link

    【讨论】:

    • 我们使用 MongoDB 3.4。
    • @senthur-dava 但更重要的是,如何用 Java 编写搜索代码?
    • 这会产生 n 条记录(其中 n 是团队中团队成员的数量)。我如何对它们进行重复数据删除?
    • 您在发布一些样本后实际需要什么回复?
    猜你喜欢
    • 2014-02-18
    • 1970-01-01
    • 2021-12-22
    • 2018-02-24
    • 1970-01-01
    • 2014-07-31
    • 2021-04-17
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多