通过MondoDB连接器在用户模型的环回中进行全文搜索

时间:2018-03-22 17:00:12

标签: javascript angularjs mongodb search loopbackjs

我想通过firstName和lastName属性的全文搜索来搜索我的User集合。

我像这样创建我的索引:

     //connect to connector
    server.datasources.db.connector.connect(function (err, db) {

        //create index on firstName and lastName
        db.collection('User').createIndex(
            { firstName: "text", lastName: "text" },
            function (err) {
                if (!err) {

                    //run autoupdate on each model
                    Promise.each(server.models(), function (model) {
                        if (model.dataSource) {
                            var autoupdate = Promise.promisify(model.dataSource.autoupdate);
                            if (autoupdate) {
                                console.log("running autoupdate on model: " + model.modelName);
                                return autoupdate.call(model.dataSource, model.modelName);
                            }
                        }
                    });
                }

                else {
                    console.log(err);
                }
            });
    });

但是当我在数据库中查询搜索字符串时,我总是通过直接访问获得零结果:

var mongodb = models.User.getDataSource().connector.collection(models.User.modelName);

    mongodb.find({ $text: { $search: "Test" } },
        function (err, resp) {
            resp.toArray(function (err, docs) {
                //docs always empty
                cb(null, docs);
            });
        });

或者当我使用Angular客户端时,我得到每个条目:

User.find({ where: { '$text': { search: "Test" } } }).$promise.then(function (resp) {
  console.log(resp)
});

我缺少什么?

0 个答案:

没有答案