sql >> Databasteknik >  >> NoSQL >> MongoDB

Få genererat skript i MongoDB C#-drivrutinen

EDIT:Från och med 2.0.1-versionen av drivrutinen är FindFluent objekt som returneras från IMongoCollection.Find har en lämplig ToString som inkluderar filtret, men också en projektion, sortering och så vidare (om relevant).

Så för detta:

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

Utdata skulle vara:

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

Tja, du vet redan att du gör ett fynd så jag antar att du vill veta hur frågan ser ut.

Du kan enkelt göra det direkt från din kod med IFindFluent.Filter :

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

Console.WriteLine(filterDocument);

Utdata i ditt fall (beror på hashValues och topicId självklart):

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


  1. Kontrollera MongoDB-autentisering med Java 3.0-drivrutin

  2. Hur benchmarkar man MongoDB med YCSB?

  3. brew install mongodb-fel:Fegt vägrar att `sudo brew install' Mac OSX Lion

  4. Kan inte ansluta till MongoDB via node.js i Docker