我尝试通过 Casbah 在 MongoDB 中查询一个字段,该字段是带有正则表达式的字符串数组。
例如:
我有一个带有 ips 列表的 Maschine,它们作为字符串存储在字段 ips 中。现在我想搜索所有具有子网 192.168 的机器。
对我来说,我看起来无法使用应用于每个条目的正则表达式来查询数组,并且如果其中一个条目匹配则返回机器。
有什么方法可以进行这样的查询吗?
- 固定的
谢谢你的帮助。
现在一切正常。最后,我需要解决 Casbah 的一个限制,因为我需要使用 $or 加入查询,而 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)
这不是最好的代码,需要修复参数的字符串连接。但它有效:)