gpt4 book ai didi

c# - 分析 MongoDB 数据库以查看执行的查询

转载 作者:可可西里 更新时间:2023-11-01 10:44:30 25 4
gpt4 key购买 nike

有没有办法查看在 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();

但我猜这是不支持的。有什么想法吗?

最佳答案

我认为没有得到 IMongoQuery 就没有办法做到这一点.好消息是你可以投 peopleMongoQueryable<Person>并得到 IMongoQuery从那里:

var people = db.GetCollection<Person>("People")
.AsQueryable().Where(x => x.Sessions.Any(y => y.SessionDate != null));

var mqPeople = (MongoQueryable<Person>)people;
var query = mqPeople.GetMongoQuery().ToJson();

编辑:

看起来这只适用于 Where虽然条款。

关于c# - 分析 MongoDB 数据库以查看执行的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com