有没有办法在 MongoDB 上查看执行的查询?我使用以下命令通过 Windows 上的 mongo.exe 启用了分析:
db.setProfilingLevel(2);
这启用了分析,我可以使用以下命令查询配置文件数据,例如:
db.system.profile.find().limit(10).sort( { ts : -1 } ).pretty()
但是,这并没有让我得到执行的查询。我知道我也可以使用该IMongoQuery.ToJson()
方法来查看查询,但我正在使用带有 MongoDB C# 驱动程序的 Linq 查询(顺便说一句,我真的很想知道他们为什么调用这个 C# 驱动程序而不是 .NET 驱动程序)。
这是示例:
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();
但我猜这是不支持的。有任何想法吗?