sql >> Databasteknik >  >> NoSQL >> MongoDB

Finns det en Explain Query för MongoDB Linq?

Du kan få Json tillräckligt enkelt om du har en frågeomslag;

var qLinq = Query<T>.Where(x => x.name=="jim");
Console.WriteLine(qLinq.ToJson());

Det finns också en Explain()-metod på MongoCursor, så du kan göra detta;

var exp = Collection.FindAs<T>(qLinq).Explain()
Console.WriteLine(exp.ToJson());

Så om du vill att tiden ska ta, finns "millis" där;

var msTaken = exp.First(x => x.Name == "millis").Value.AsInt32;

Om du har en IQueryable , prova något sånt här;

void Do(MongoCollection col, IQueryable iq)
{
        // Json Mongo Query
        var imq = (iq as MongoQueryable<Blob>).GetMongoQuery();
        Console.WriteLine(imq.ToString());

        // you could also just do;
        // var cursor = col.FindAs(typeof(Blob), imq);
        var cursor = MongoCursor.Create(typeof(Blob), col, imq, ReadPreference.Nearest);
        var explainDoc = cursor.Explain();

        Console.WriteLine(explainDoc);
    }//Do()


  1. Ansluter till Meteor Mongo från GUI

  2. MongoDB med Mongoose limit underdokument

  3. MongoDB:Unika och glesa sammansatta index med glesa värden

  4. Hur lagrar man resultat från dynamiskt genererade formulär i MongoDb?