2012-01-05 12 views
1

ここでmongoを完全に新しくしました。mongodbのMysql INSTRのような操作

私は私のmysqlのテーブルの上のフィールドを次ています

id (BIGINT), text (LONGTEXT) #this would contain a long description 

を、私は、MySQLからのMongoDBに私のプロジェクトを変更するには期待していますが、私は解決する必要が非常に重要なクエリがあることを行う前に。

私の現在のクエリは、説明の中のさまざまな用語を探し、すべてのidsを返します。

select id from <table> where instr(<table>.text, 'value') or instr(<table>.text, 'value2) 

これはMongoで再現できますか?もしそうなら、どのように?今のところ、$ orまたは$ inのいずれかを使用していると、私はドキュメント内のある種の配列でこれらの特定の値を持つ必要があるようです。

答えて

0

現在、MongoDBはフルテキスト検索をネイティブにサポートしていません。

正規表現を使用することはできますが、インデックスが使用されていないために遅くなります。

クエリは次のようになります:あなたは、キーワードの検索可能な配列に各単語を挿入するために、いくつかの前処理を行うことができますが、テキストが本当にある場合に限り、あなたはおそらく、このルートを行くにしたくない

db.collection.find({ $or: [{description: /value1/}, {description: /value2/}] })

+0

ご返信ありがとうございます。だから、これは私に何かが必要なWTFの道を私に導いた...私はhttp://stackoverflow.com/questions/5453872/full-text-search-in-nosql-databasesに関する良い議論を見つけたと私は思います私はランタンとスフィンクスをチェックアウトするつもりです。 – Nertim

+0

涼しい、幸運。 –

関連する問題