MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pilote MongoDB .NET et recherche de texte

En cherchant une solution, j'ai trouvé FilterDefinition<T>.Inject() méthode d'extension.Nous pouvons donc aller plus loin et créer une extension supplémentaire sur IMongoQueryable<T> :

public static class MongoQueryableFullTextExtensions
{
    public static IMongoQueryable<T> WhereText<T>(this IMongoQueryable<T> query, string search)
    {
        var filter = Builders<T>.Filter.Text(search);
        return query.Where(_ => filter.Inject());
    }
}

Et utilisez-le comme ceci :

IMongoDatabase database = GetMyDatabase();

var results = database
    .GetCollection<Blog>("Blogs")
    .AsQueryable()
    .WhereText("stackoverflow")
    .Take(10)
    .ToArray();

J'espère que cela aide quelqu'un :)