Mongoose で 2 つのフィールドへの全文検索をエミュレートしようとしています。私は一日のほとんどをいくつかのクエリ タイプのテストに費やしてきましたが、いつも失敗してきました。MongoDB シェル クエリは次のとおりです。
db.feeds.item.find({lang:"en", $or:[{title: /searchexpression/}, {body: /searchexpression/}] })
この例では、タイトルまたは本文フィールド、または両方のフィールドの検索式 (正規表現を含む) に一致する英語のドキュメントのみを返したいと考えています。このクエリは機能しますが、私が言ったように、Mongooseで適応させようとすると問題が発生します :-(
私が使用したいくつかの表現は機能しませんでした:
exports.fullTextSearch = function(lang, text, callback) {
MyModel.find({lang:lang, $or: [{title:/text/},{body:/text/}]}).exec(callback);
MyModel.find({lang:lang, $or: [{title: new RegExp('\/'+text+'\/')}, {body:new RegExp('\/'+text+'\/')}]}).exec(callback);
MyModel.find({lang:lang}).or({title:/text/},{body:/text/}).exec(callback);
MyModel.find({lang:lang}).or({title:new RegExp('\/'+text+'\/')},{body:new RegExp('\/'+text+'\/')}).exec(callback);
}
どうもありがとうございました!
ルイス・カッパ