我嘗試通過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