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

Generiertes Skript im MongoDB-C#-Treiber abrufen

BEARBEITEN:Ab Version 2.0.1 des Treibers ist FindFluent Objekt, das von IMongoCollection.Find zurückgegeben wird hat einen passenden ToString das beinhaltet den Filter, aber auch eine Projektion, Sortierung und so weiter (falls relevant).

Dazu also:

var findFluent = collection.
    Find(x => hashValues.Contains(x.UrlHash) && x.ProductTopic == topicId,
        new FindOptions {MaxTime = TimeSpan.FromSeconds(1)}).
    Project(x => x.UrlHash).
    Sort(Builders<ProductMapping>.Sort.Descending(x => x.ProductTopic)).
    Skip(6).
    Limit(7);

Console.WriteLine(findFluent);

Die Ausgabe wäre:

find({ "UrlHash" : { "$in" : [4, 5, 6, 7, 8] }, "ProductTopic" : 200 }, { "UrlHash" : 1, "_id" : 0 }).
sort({ "ProductTopic" : -1 }).
skip(6).
limit(7).
maxTime(1000)

Nun, Sie wissen bereits, dass Sie eine Suche durchführen, also nehme ich an, dass Sie wissen möchten, wie die Abfrage aussieht.

Sie können dies ganz einfach direkt aus Ihrem Code heraus mit IFindFluent.Filter tun :

BsonDocument filterDocument = findFluent.Filter.Render(
    collection.DocumentSerializer,
    collection.Settings.SerializerRegistry);

Console.WriteLine(filterDocument);

Die Ausgabe in Ihrem Fall (hängt von hashValues ab und topicId natürlich):

{ "UrlHash" : { "$in" : [4, 5, 6, 7, 8, 9] }, "ProductTopic" : 200 }