sql >> Database >  >> NoSQL >> MongoDB

Is er een Explain Query voor MongoDB Linq?

Je kunt de Json gemakkelijk genoeg krijgen als je een query-wrapper hebt;

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

Er is ook een Explain()-methode op MongoCursor, dus je zou dit kunnen doen;

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

Dus als je de tijd wilt hebben, staat "millis" daar;

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

Als je een IQueryable . hebt , probeer zoiets als dit;

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. mongodb tellen vs vinden met tellen

  2. Hoe het .bson-bestandsformaat op mongodb te importeren

  3. Hoe krijg ik toegang tot een reeds bestaande collectie met Mongoose?

  4. Hoe kan ik de 'Not Like'-operator gebruiken in MongoDB