Mongoose MongoDB:搜索中的 LIKE 运算符

Moongose MongoDB: LIKE operator in search

阅读一些在 Mongoose 中使用 "LIKE" 的解决方案后:

Mongoose.js: Find user by username LIKE value

How to query MongoDB with "like"?

Mongodb dynamic like operator

我正在使用此代码在 Mongoose 中模拟 "SQL LIKE":

查找:'joseph' --> 结果:Josephine Doyle

var word = 'joseph';

User
    .find({name: new RegExp(word, 'i')})
    .sort('-created')
    .exec(function(err, users){
        if (err) {
            console.log(err);
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            res.jsonp(users);
        }
    });

结果是用户 Josephine Doyle,好的。

现在我想用同样的代码,但是用这个词来搜索:

查找:'josephine do' --> 结果:Josephine Doyle

var word = 'josephine do';

好的,也可以...

示例多于作品:

但是,我想解决这个问题:

有什么建议吗?也许另一个正则表达式?谢谢!

您可以通过拆分字符串并使用 $and 搜索每个单词来完成此操作。

类似于:

var name = 'doyle josephine';

var toSearch = name.split(" ").map(function(n) {
    return {
        name: new RegExp(n.trim(), 'i')
    };
});

User
    .find({ $and: toSearch })