MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Driver MongoDB .NET e ricerca di testo

Cercando una soluzione ho trovato FilterDefinition<T>.Inject() metodo di estensione. Così possiamo andare più a fondo e creare un'altra estensione su 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());
    }
}

E usalo in questo modo:

IMongoDatabase database = GetMyDatabase();

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

Spero che questo aiuti qualcuno :)