$text
を使用できるようにするテキストインデックスをMongooseスキーマ定義に追加できます。 find
の演算子 テキストインデックスに含まれるすべてのフィールドを検索するためのクエリ。
たとえば、name
でのテキスト検索をサポートするインデックスを作成するには およびprofile.something
:
var schema = new Schema({
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
});
schema.index({name: 'text', 'profile.something': 'text'});
または、すべての文字列フィールドをインデックスに含める場合は、'$**'
を使用します ワイルドカード:
schema.index({'$**': 'text'});
これにより、次のようなページテキスト検索クエリを実行できるようになります。
MyModel.find({$text: {$search: searchString}})
.skip(20)
.limit(10)
.exec(function(err, docs) { ... });
詳細については、MongoDBTextIndexesの完全なドキュメントをお読みください。