sql >> データベース >  >> NoSQL >> MongoDB

MongoDBとMongooseで全文検索を実行するための最良の方法

    $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の完全なドキュメントをお読みください。




    1. SQLで複数の行をコンマ区切りリストに入れる方法

    2. Ubuntu16.04へのMongoDBのインストール

    3. パターンに一致するキーの数を数える方法は?

    4. PyMongoでコレクションオブジェクトを呼び出せないエラー