我尝试通过Casbah查询一个字符串数组的字段与正则表达式的MongoDB。如何查询正则表达式匹配的Array [String]?
例如:
我有一个Maschine用的IP地址列表,存储作为田野IPS字符串。 现在我想要搜索具有子网192.168的所有机器。
对我来说,我看起来像我不能查询一个正则表达式应用于每个条目的数组,如果其中一个条目匹配机器返回。
任何方式来作出这样的查询?
- 修正
感谢您的帮助。
现在一切正常。最后,我需要解决Casbah的一个局限性,因为我需要加入使用$或者Casbah进行的查询,并抱怨使用正则表达式丢失了implicits。
我的用于与其他附加字段一正则表达式阵列查询最终的代码是:
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 2012-01-13 15:35:30