私は、正規表現を持つ文字列の配列であるフィールドに対して、Casbahを介してMongoDBをクエリしようとします。例えば正規表現一致のために配列[String]をクエリするには?
:
私は、フィールドのIPSに文字列として保存されているIPのリストとMaschineのを、持っています。 サブネット192.168を持つすべてのマシンを検索します。
私にとっては、私はすべてのエントリに適用された正規表現を使って配列を問い合わせることができないと思われます。そして、エントリの1つがマシンに一致した場合、返されます。
このようなクエリを作成する方法はありますか?
- 固定
ありがとうございました。
すべて動作します。最後に、私は$ orのクエリに参加する必要があったので、Casbahの制限を回避する必要があります。そして、Casbahは正規表現の暗黙の黙示について不平を言っています。
追加の他の分野とのRegExpアレイクエリのための私の最終的なコードは次のとおりです。
val regexp = ".*" + parameter + ".*"
val nameQ = MongoDBObject("serverName" -> regexp.r)
val ipsQ = MongoDBObject("ips" -> regexp.r)
val bldr = MongoDBList.newBuilder
bldr += ipsQ
bldr += nameQ
val query = MongoDBObject("$or" -> bldr.result.asDBObject)
val result = find(query)
それは素敵なコードではなく、パラメータの文字列連結を修正する必要があります。しかしそれは働く:)
私はすでに試しました。 $ elemMatchは、配列にキーと値のペアがあると想定しています。しかし、私は単純な文字列しか持っていません。 – Odo