Regexp'li dizeler dizisi olan bir alan için MongoDB'yi Casbah ile sorgulamayı deniyorum. ÖrneğinBir regexp eşleşmesi için bir dizi [String] nasıl sorgulanır?
:
Ben alanlar ip'leri de dize olarak saklanır ip'leri listesi, bir Maschine var. Şimdi 192.168 alt ağına sahip tüm makineleri aramak istiyorum.
Benim için her girişe uygulanan bir regexp ile bir dizi sorgulayamıyorum ve girdilerden biri makine ile eşleştiğinde döndürülen gibi görünüyor.
Böyle bir sorgulama yapmanın herhangi bir yolu var mı?
- Sabit
Yardımlarınız için teşekkürler.
Her şey şimdi çalışıyor. Sonunda Casbah'ın bir kısıtlaması etrafında çalışmam gerekiyor, çünkü $ ile sorgulara katılmam gerekiyordu ve Casbah regexp'le ilgili eksikliklerden şikayet ediyor. Ek bir diğer alanı olan bir RegExp Dizisi sorgusu için
Benim son kodudur:
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)
En güzel en kodu ve parametrenin dize birleştirme düzeltilmesi gerekiyor değildir. Ancak,
Zaten denedim. $ elemMatch, dizimin anahtar/değer çiftlerine sahip olmasını bekler. Ama sadece basit dizelerim var. – Odo