0

ページにタグシステムを実装しています。ユーザーが文字列を入力すると、高速ルートがトリガーされ、入力されたコンテンツを見つけてリストを埋め、JSON として返してコールバックを処理しようとします。問題は Moongose に関するものです。これは、mongo シェルで実行すると、クエリがかなり正しく、正常に動作するためです。

クエリ:

var token = '/.*' + req.query.search + '.*/i';
Tag.find({ description: token , inactivatedAt: null }, function(err, tags) {
    var tempArray = [];

    if (tags) {
        var counter = 0;

        tags.forEach(function(tag) {
            var dArray = [];

            dArray.push(counter++);
            dArray.push(tag.description);
            dArray.push(null);
            dArray.push(null);
            tempArray.push(dArray);
        });
    }

    res.writeHead(200, {'content-type': 'text/json'});
    res.end(JSON.stringify(tempArray));
});

としてクエリを実行してdescription: { $regex: token }description: token、結果が見つかりません。同じクエリ パラメータで問題なく、シェルの mongo から結果が得られます。例:db.tags.find({ description: /.*MET.*/i , inactivatedAt: null }).pretty()しかし、私のマングース クエリは機能しません。

手がかりは非常に役立ちます。前もって感謝します!

4

1 に答える 1

2

token文字列だけでなく、正規表現に変換する必要があります。

var token = new RegExp(req.query.search, 'i');
于 2013-02-11T00:17:47.337 に答える