Question

Quelqu'un a-t-il une idée d'utiliser MongoRegex pour la recherche de documents?

Je tentais, mais ne renvoie rien de nouveau:

var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)

Vous vous demandez pourquoi il ne fonctionne pas, j'ai essayé d'exécuter la commande suivante à partir de la console:

db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN'T WORK */

Est-ce possible que le conducteur applique les guillemets à l'expression rationnelle?

Merci ..

Était-ce utile?

La solution

vous voulez juste une simple requête de préfixe. Votre regex est alors ^ + searchkey. En outre, ce formulaire MongoDB permet d'utiliser un index sur Nom.

var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)

Autres conseils

Je pense que vous devez inclure pas s "/" en C #, i.e..,

spec.Add("Name", new MongoRegex(searchKey + "*", "i"));

Après avoir creusé le code source, j'ai finalement trouvé la réponse:)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top