MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obter script gerado no driver MongoDB C#


EDIT:A partir da versão 2.0.1 do driver, o FindFluent objeto retornado de IMongoCollection.Find tem um ToString apropriado que inclui o filtro, mas também uma projeção, classificação e assim por diante (se relevante).

Então, para isso:
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);

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

Bem, você já sabe que está fazendo uma busca, então suponho que você queira saber como é a consulta.

Você pode fazer isso facilmente diretamente do seu código usando IFindFluent.Filter :
BsonDocument filterDocument = findFluent.Filter.Render(
    collection.DocumentSerializer,
    collection.Settings.SerializerRegistry);

Console.WriteLine(filterDocument);

A saída no seu caso (depende de hashValues e topicId é claro):
{ "UrlHash" : { "$in" : [4, 5, 6, 7, 8, 9] }, "ProductTopic" : 200 }