2015-11-25 8 views
5

Ich wollte Sub-Strings innerhalb eines Feldes in MongoDB mit PyMongo suchen.Finden Sie Teilstrings in PyMongo

Die folgende Abfrage funktioniert gut und ist das, was ich benötige:

db.collection.find({ "Animal": /cat|Dog/i}) 

Wenn ich jedoch den Wert versuchen vorbei /cat|Dog/i als String in Python, es funktioniert nicht.

Gibt es eine Möglichkeit, die Abfrage in PyMongo zu replizieren?

Hinweis: /cat|Dog/i ist Wert des Feldes aus einer anderen Sammlung. Es ist in der Form "Katzenhund". Grundsätzlich möchte ich Teilstrings in einem Feld mit Teilstrings in einem anderen zusammenbringen.

Antwort

6

Sie müssen Ihr reguläres Ausdrucksmuster mithilfe der Funktion re.compile() in einem regulären Ausdrucksobjekt kompilieren.

import re 

pat = re.compile(r'cat|Dog', re.I) 
db.collection.find({ "Animal": {'$regex': pat}}) 
Verwandte Themen