对填充子文档进行猫鼬全文搜索

时间:2020-05-17 06:18:54

标签: node.js mongoose full-text-search relationship

我有论坛列表和用户列表,每个用户可以加入多个论坛。我的目的是在特定论坛的用户个人资料上执行全文搜索。

// ForumMembershipSchema
{
_id : OBJECTID
user_id: { type: Schema.Types.ObjectId, ref: 'Users' },,
forum_id: { type: String},
...


// UsersSchema
{
_id : OBJECTID
address: { type: String},
name: { type: String},
...

每个用户都通过“ user_id”添加到论坛成员文档中,因此我可以使用“填充”来获得用户详细信息:

ForumMembership.find({forum_id: '5ec003651fb3baf1a501517c'}).populate('user_id').then(members => {
})

以上内容返回此论坛成员的所有用户的列表,并在'user.id'中填充用户详细信息。我的要求是能够对填充的用户使用全文本搜索过滤器。例如,我想通过用户的地址或名称来搜索用户(注意:已经为用户模型创建的文本索引)。这就是我正在尝试的:

 ForumMembership.aggregate([{
        $lookup: {
            $text : { $search : 'Jane Doe' },
            from: "Users", 
            localField: "5ec003651fb3baf1a501517c",
            foreignField: "user_id",
            as: "ForumMembers"
        }
    }]).then(data => {

        console.log(data);

    })

0 个答案:

没有答案