Bir sorgu sarıcınız varsa Json'u kolayca alabilirsiniz; Bunu böylece
var qLinq = Query<T>.Where(x => x.name=="jim");
Console.WriteLine(qLinq.ToJson());
, ayrıca MongoCursor üzerinde açıklayınız() yöntemi yoktur;
var exp = Collection.FindAs<T>(qLinq).Explain()
Console.WriteLine(exp.ToJson());
Alınan süreyi istiyorsan, "millis" içeride; Bir IQueryable
varsa
var msTaken = exp.First(x => x.Name == "millis").Value.AsInt32;
, böyle bir şey deneyin; Eğer bir kütüphanede bu işlevselliği isterseniz
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()
teşekkürler. Sorgularımızın çoğu 'IQueryable' nesnelerine aittir. Belki de daha iyi soru, bir “IQueryable” ın bir “IMongoQuery” ye dönüştürülmesidir? – kelloti
Bu yönde gitmek o kadar kolay değil, ancak bunu yapabilirsiniz - güncellenmiş cevabı gör. Diğer bir yaklaşım ise bir Deponun Mongo Linq katmanına yerleştirilmesidir, böylece Query <> nesnelerle doğrudan çalışabilir, günlüğünüzü yapabilir ve daha sonra IQueryable'ı sorgulamak yerine IQueryable değerini döndürür <> – cirrus
yardım için teşekkürler. Çözümünüz aslında değil. Benim için gerçekte neyin işe yaradığına dair güncellemelerimi görün ('' '' '' 'fıkra '' kelimesini elde etmek için' İfade''ye derinlemesine bakmak zorunda olduğumu not alın. – kelloti