阅读MongoDB性能疑难解答,我发现MongoDB支持在查询后附加注释。我们以为可以将相关性添加到查询中,以便可以关联哪些功能导致查询缓慢,并且/或者如果可以发现mongodb中的某些缓慢性,则可以检查是否在何时发现某个功能缓慢。
我们如何通过.net驱动程序向查询和/或命令添加注释?
我们如何通过.net驱动程序向查询和/或命令添加注释?
您可以利用FindOptions.Comment在查询或命令上设置注释。例如:
var collection = database.GetCollection<MyObject>("collectionName");
var filter = Builders<MyObject>.Filter.Eq("Name", "Foo");
FindOptions myFindOptions = new FindOptions();
myFindOptions.Comment = "THIS IS FEATURE XYZ";
var cursor = collection.Find<MyObject>(filter, myFindOptions).ToList();
一旦您通过database profiler设置了db.setProfilingLevel(),就可以查询(database).system.profile集合以找到它。例如:
db.system.profile.find({
ns:"dbName.collectionName",
"command.comment":"THIS IS FEATURE XYZ"
});
// Example result:
{
"op": "query",
"ns": "dbName.collectionName",
"command": {
"find": "collectionName",
"filter": {
"Name": "Foo"
},
"comment": "THIS IS FROM FEATURE XYZ",
"$db": "dbName",
"lsid": {
"id": UUID("6b722166-f50b-409c-85f0-2711633baff2"))
}
},
....
}
以上.NET / C#代码段是使用MongoDB .NET/C# driver v2.9.3编写的。