引用的Mongodb搜索字段

引用的Mongodb搜索字段,mongodb,search,express,sails.js,waterline,Mongodb,Search,Express,Sails.js,Waterline,这里是MongoDB的新手,我在这个项目中使用sails.js(基于expressjs)/waterline(ORM)/MongoDB。我有两个集合,消息和用户。在消息中的任何文档中,都有一个名为author的字段,用于存储用户模型的引用/对象ID: module.exports = { autoCreatedAt: true, autoUpdatedAt: true, schema: true, tableName: 'message', attribu

这里是MongoDB的新手,我在这个项目中使用sails.js(基于expressjs)/waterline(ORM)/MongoDB。我有两个集合,消息和用户。在消息中的任何文档中,都有一个名为author的字段,用于存储用户模型的引用/对象ID:

module.exports = {
    autoCreatedAt: true,
    autoUpdatedAt: true,
    schema: true,
    tableName: 'message',
    attributes: {
        from: {
            model: 'user',
            required: true
        },
        to: {
            model: 'user',
            required: true
        },
        content: {
            type: 'string',
            maxLength: 288,
            required: true
        }
    }
};
我的用户集合如下所示:

module.exports = {
autoCreatedAt: true,
autoUpdatedAt: true,
schema: true,
tableName: 'user',
attributes: {
    email: {
        type: 'string',
        email: true,
        unique: true,
        required: true
    },
    name: {
        type: 'string',
        maxLength: 30
    },
    username: {
        type: 'string',
        unique: true,
        required: true,
        maxLength: 80
    },
    role: {     
        type: 'string',
        required: true
    },
   ......

},
})

现在我想对所有消息进行搜索查询,给定一个搜索关键字,我想显示消息的分页结果,其中作者的用户名和消息内容包含该关键字,我如何实现这一点

顺便说一句,我知道我可以简单地在消息文档中存储用户名而不是用户引用id,但从Mongodb文档中可以看出,objectId的性能优于string,所以