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

MongoDBはクエリを正規化できません:BadValueテキスト式が多すぎます

    エラーはかなり正確です。あなたがしようとしているのは、<内に「複数のテキストクエリ」を作成することです。強い>$または 調子。 MongoDBはそれを行うことができず、実際には制限 $ text>

    さらに、あなたは想定されていません それを行うには、むしろ1つを指定します 必要に応じて複数のフィールドを検索するためのコレクションのテキストインデックス:

    db.collection.ensureIndex({ "comments": "text", "title": "text" })
    

    次に、ここに示すように、に重みを割り当てます。

    しかし、あなたが本当に求めているのは、「複数の用語」を検索することだけのようです。したがって、$またはは使用しません このためですが、スペースで区切って用語のリストを送信してください:

    db.collection.find({ "$text": { "$search": "something else" } })
    

    次に、スペース区切りリスト内のすべての単語が、テキストインデックス内の任意のフィールドのコンテキスト内で検索され、それらの単語の「任意」を含むすべてのドキュメントが返されます。そのリスト内の単語のより多くの一致の「重み」で並べ替えられた結果。




    1. マングースの平均を計算する

    2. Azure関数からMongoDBに接続する

    3. キー名で値を取得するmongodbnode.jsドライバー

    4. Mongodb:配列にネストされたjsonオブジェクトをクエリします