sql >> Base de Datos >  >> NoSQL >> MongoDB

Controlador MongoDB .NET y búsqueda de texto

Buscando una solución encontré FilterDefinition<T>.Inject() método de extensión. Entonces podemos profundizar y crear una extensión más en 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());
    }
}

Y úsalo así:

IMongoDatabase database = GetMyDatabase();

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

Espero que esto ayude a alguien :)