MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB .NET-Treiber und Textsuche

Auf der Suche nach einer Lösung fand ich FilterDefinition<T>.Inject() Erweiterungsmethode. So können wir tiefer gehen und eine weitere Erweiterung auf IMongoQueryable<T> erstellen :

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());
    }
}

Und verwenden Sie es so:

IMongoDatabase database = GetMyDatabase();

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

Hoffe das hilft jemandem :)