Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在当前mongodb c驱动程序版本中执行解释?_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 如何在当前mongodb c驱动程序版本中执行解释?

C# 如何在当前mongodb c驱动程序版本中执行解释?,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我刚开始使用MongoDb驱动程序,我在Stackoverflow上发现了多篇帖子,上面说只需添加。向IQueryable解释一下,它就会发挥神奇的作用。问题是,我的IDE不建议使用这种方法 我已经开始挖掘,在MongoDb驱动程序的主分支中,我看到解释扩展方法在LinqExtensionMethods类中,它本身在MongoDb.driver.Legacy中,而不是从当前驱动程序引用 那么,使用当前驱动程序的方法是什么呢?唯一的方法是对MongoDB驱动程序内部或私有的所有内容进行黑客攻击,我

我刚开始使用MongoDb驱动程序,我在Stackoverflow上发现了多篇帖子,上面说只需添加。向IQueryable解释一下,它就会发挥神奇的作用。问题是,我的IDE不建议使用这种方法

我已经开始挖掘,在MongoDb驱动程序的主分支中,我看到解释扩展方法在LinqExtensionMethods类中,它本身在MongoDb.driver.Legacy中,而不是从当前驱动程序引用


那么,使用当前驱动程序的方法是什么呢?

唯一的方法是对MongoDB驱动程序内部或私有的所有内容进行黑客攻击,我不建议您这样做,但是,使用下面的代码是可能的

var客户端=新的MongoClient; var database=client.GetDatabasetest; var collection=database.GetCollectionevents; var filter=Builders.filter.Gtex=>x.At,DateTime.UtcNow; var fields=Builders.Projection.Includex=>x.Name; var settingsSerializerRegistry=collection.Settings.SerializerRegistry; var bsonSerializer=settingsSerializerRegistry.GetSerializer; var命令=新的BsonDocument { {find,collection.CollectionNamespace.CollectionName}, {filter,filter.RenderbsonSerializer,settingsSerializerRegistry}, {projection,fields.RenderbsonSerializer,settingsSerializerRegistry}, {skip,5}, {限制,10}, }; var subject=new ExplainOperationdatabase.DatabaseNamespace、命令、新消息编码器设置 { 详细性=解释详细性.QueryPlanner }; var readPreferenceBinding=new ReadPreferenceBindingclient.Cluster,ReadPreference.Primary,NoCoreSession.NewHandle; var explain=subject.ExecutereadPreferenceBinding,CancellationToken.None; //{queryPlanner:{plannerVersion:1,namespace:test.events,indexFilterSet:false,parsedQuery:{At:{$gte:ISODate2020-03-14T23:45:37.143Z},winningPlan:{stage:EOF},rejectedPlans:[]},serverInfo:{主机:DESKTOP-ULTR09L,端口:27017,版本:4.2.3,gitVersion:6874650B36213874DFBE53D366BBEFC321EA32D4},ok:1.0} 但是,explain扩展在包中,任何可以运行.NETStandard 1.5和.NETFramework 4.5.2的程序都支持它


所以这对你来说可能是一条更好的路线 要做到这一点,唯一的方法是在MongoDB驱动程序中对所有内部或私有的东西进行黑客攻击,我不建议您这样做,但是,使用下面的代码是可能的

var客户端=新的MongoClient; var database=client.GetDatabasetest; var collection=database.GetCollectionevents; var filter=Builders.filter.Gtex=>x.At,DateTime.UtcNow; var fields=Builders.Projection.Includex=>x.Name; var settingsSerializerRegistry=collection.Settings.SerializerRegistry; var bsonSerializer=settingsSerializerRegistry.GetSerializer; var命令=新的BsonDocument { {find,collection.CollectionNamespace.CollectionName}, {filter,filter.RenderbsonSerializer,settingsSerializerRegistry}, {projection,fields.RenderbsonSerializer,settingsSerializerRegistry}, {skip,5}, {限制,10}, }; var subject=new ExplainOperationdatabase.DatabaseNamespace、命令、新消息编码器设置 { 详细性=解释详细性.QueryPlanner }; var readPreferenceBinding=new ReadPreferenceBindingclient.Cluster,ReadPreference.Primary,NoCoreSession.NewHandle; var explain=subject.ExecutereadPreferenceBinding,CancellationToken.None; //{queryPlanner:{plannerVersion:1,namespace:test.events,indexFilterSet:false,parsedQuery:{At:{$gte:ISODate2020-03-14T23:45:37.143Z},winningPlan:{stage:EOF},rejectedPlans:[]},serverInfo:{主机:DESKTOP-ULTR09L,端口:27017,版本:4.2.3,gitVersion:6874650B36213874DFBE53D366BBEFC321EA32D4},ok:1.0} 但是,explain扩展在包中,任何可以运行.NETStandard 1.5和.NETFramework 4.5.2的程序都支持它


所以这对你来说可能是一条更好的路线!它在新的核心驱动程序中。出于好奇,你期待什么魔法?也许魔法这个词太强了,我只是希望执行计划,仅此而已。任何关于如何在LINQAPI中使用ExplainOperation的想法,可以是示例或文章?都在新的核心驱动程序中。出于好奇,你期待什么魔法?也许魔法这个词太强了,我只是希望执行计划,仅此而已。有没有关于如何在Linq API中使用ExplainOperation的想法,可以是示例或文章?谢谢,有没有关于他们为什么在当前版本中从Linq中删除它的想法,他们是否计划将它带回来?或者一般来说,mongodb的c社区认为LINQ实现不是很成功,并且在生产中没有太多使用?根据经验,LINQ实现被大量使用,并且也可以编写高效的查询,但是,在优化查询时,我在mongodb中启用了评测,而不是试图从实际应用程序中进行评测。谢谢,你知道他们为什么在当前版本中从LINQ中删除它吗
嘿,打算把它带回来吗?或者一般来说,mongodb的c社区认为LINQ实现不是很成功,并且在生产中没有太多使用?根据经验,LINQ实现被大量使用,并且也可以编写高效的查询,但是,在优化查询时,我在mongodb中启用了评测,而不是试图从实际应用程序中进行评测。