2016-08-22 5 views
2

Ich weiß, ich kann auf mongodb ein glob-Typ-Suche:Python, mongoengine - tun wie/regex Suche

db.person.find({ name: /*.bob.*/ }) 

oder

db.person.find({ name: { $regex: '*.bob.*' }}) 

Wie kann ich tun dies mit mongoengine ohne Verwendung rohe Abfrage (was anscheinend die einzige Möglichkeit ist, basierend auf meinen Suchen)?

Ich habe versucht, blind mehrere Varianten wie:

Person.objects(name='/.*bob.*/') 
Person.objects(name='/\.*bob\.*/') 
Person.objects(name='.*bob.*') 
Person.objects(name='\\.*bob\\.*') 

etc, ohne Erfolg ...

Antwort

2

Es sieht aus wie Sie es auf diese Weise tun können:

import re 

regex = re.compile('.*bob.*') 
Person.objects(name=regex)