MongoDB で実行されたクエリを表示する方法はありますか? 次のコマンドを使用して、Windows で mongo.exe を使用してプロファイリングを有効にしました。
db.setProfilingLevel(2);
これによりプロファイリングが有効になり、たとえば次のコマンドを使用してプロファイル データをクエリできます。
db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty()
ただし、これは実行されたクエリを取得しません。メソッドを使用してクエリを表示することもできることはわかってIMongoQuery.ToJson()
いますが、MongoDB C# ドライバーで Linq クエリを使用しています (ところで、.NET ドライバーの代わりにこの C# ドライバーを呼び出した理由を本当に知りたいです)。
サンプルは次のとおりです。
var people = db.GetCollection<Person>("People")
.AsQueryable().Where(x => x.Sessions.Any(y => y.SessionDate != null));
var peeps = people.Select(x =>
x.Sessions.Where(y => y.SessionDate != null)).ToList();
ただし、次のことができると非常に便利です。
var people = db.GetCollection<Person>("People")
.AsQueryable().Where(x => x.Sessions.Any(y => y.SessionDate != null))
.Expression.ToJson();
しかし、これはサポートされていないと思います。何か案は?