C# 在查询MongoDB时,我们应该使用Query还是Query<;T>;?

C# 在查询MongoDB时,我们应该使用Query还是Query<;T>;?,c#,mongodb,C#,Mongodb,我正在寻找使我们的mongo查询更快、更高效的方法 我们已经通过使用GetCollection(“CollectionName”)获得了集合 但是,我们应该使用Query.EQ(“fieldname”,“fielddata”)或Query.EQ(x=>x.fieldname,“fielddata”)来构建查询吗?我个人更喜欢第二种方式,但它更有效吗 有什么区别吗?我们应该用哪一种 假设它们运行在相同的硬件上,查询相同的数据库 它们之间没有区别 Mongo引擎的作用与Query.EQ(x=>x.F

我正在寻找使我们的mongo查询更快、更高效的方法

我们已经通过使用
GetCollection(“CollectionName”)
获得了集合

但是,我们应该使用
Query.EQ(“fieldname”,“fielddata”)
Query.EQ(x=>x.fieldname,“fielddata”)
来构建查询吗?我个人更喜欢第二种方式,但它更有效吗

有什么区别吗?我们应该用哪一种


假设它们运行在相同的硬件上,查询相同的数据库

它们之间没有区别
Mongo引擎的作用与
Query.EQ(x=>x.FieldName,“fielddata”)
Query.EQ(“FieldName”,“fielddata”)
相同,最后两者都将转换为Bson文档,因为
{'FieldName','fielddata'}

它们之间没有区别
Mongo引擎的作用与
Query.EQ(x=>x.FieldName,“fielddata”)
Query.EQ(“FieldName”,“fielddata”)
相同,最后两者都将转换为Bson文档,因为
{'FieldName','fielddata'}

它们之间没有区别
Mongo引擎的作用与
Query.EQ(x=>x.FieldName,“fielddata”)
Query.EQ(“FieldName”,“fielddata”)
相同,最后两者都将转换为Bson文档,因为
{'FieldName','fielddata'}

它们之间没有区别 Mongo引擎的作用与
Query.EQ(x=>x.FieldName,“fielddata”)
Query.EQ(“FieldName”,“fielddata”)
相同,最后两者都将转换为Bson文档,如
{'FieldName','fielddata'}

Query.EQ(x=>x.FieldName,“fieldData”)和Query.EQ(“FieldName”,“fieldData”)都将生成相同的json-{“FieldName”:“fieldData”},假设您已将T.FieldName属性映射到camelCase“FieldName”

考虑到这一点,当然不使用泛型会带来更快的体验。它必须做更少的工作。使用类型化表单意味着我们需要找到映射信息并应用它

但是这里的速度增长在很大程度上是不可察觉的,除非你每秒要做数百万件这样的事情,这可能会被满足查询服务器端的网络和mongo所掩盖。最好的办法就是测量它

最终,通用表单存在的原因是,您不必到处都有映射信息。

Query.EQ(x=>x.FieldName,“fieldData”)和Query.EQ(“FieldName”,“fieldData”)都将生成相同的json-{“FieldName”:“fieldData”},假设您已将T.FieldName属性映射到camelCase“FieldName”

考虑到这一点,当然不使用泛型会带来更快的体验。它必须做更少的工作。使用类型化表单意味着我们需要找到映射信息并应用它

但是这里的速度增长在很大程度上是不可察觉的,除非你每秒要做数百万件这样的事情,这可能会被满足查询服务器端的网络和mongo所掩盖。最好的办法就是测量它

最终,通用表单存在的原因是,您不必到处都有映射信息。

Query.EQ(x=>x.FieldName,“fieldData”)和Query.EQ(“FieldName”,“fieldData”)都将生成相同的json-{“FieldName”:“fieldData”},假设您已将T.FieldName属性映射到camelCase“FieldName”

考虑到这一点,当然不使用泛型会带来更快的体验。它必须做更少的工作。使用类型化表单意味着我们需要找到映射信息并应用它

但是这里的速度增长在很大程度上是不可察觉的,除非你每秒要做数百万件这样的事情,这可能会被满足查询服务器端的网络和mongo所掩盖。最好的办法就是测量它

最终,通用表单存在的原因是,您不必到处都有映射信息。

Query.EQ(x=>x.FieldName,“fieldData”)和Query.EQ(“FieldName”,“fieldData”)都将生成相同的json-{“FieldName”:“fieldData”},假设您已将T.FieldName属性映射到camelCase“FieldName”

考虑到这一点,当然不使用泛型会带来更快的体验。它必须做更少的工作。使用类型化表单意味着我们需要找到映射信息并应用它

但是这里的速度增长在很大程度上是不可察觉的,除非你每秒要做数百万件这样的事情,这可能会被满足查询服务器端的网络和mongo所掩盖。最好的办法就是测量它


最终,通用表单存在的原因是,您不必到处都有映射信息。

相关阅读:没有真正的帮助。过去,您会在存储过程中编写查询,而不是在SQL Server中编写内联查询,因为它是编译的,运行速度更快。我想知道这里是否也是如此。相关阅读:没有什么帮助。过去,您会在存储过程中编写查询,而不是在SQL Server中编写内联查询,因为它是编译的,运行速度更快。我想知道这里是否也是如此。相关阅读:没有什么帮助。过去,您会在存储过程中编写查询,而不是在SQL Server中编写内联查询,因为它是编译的,运行速度更快。我想知道这里是否也是如此。相关阅读:没有什么帮助。过去,您会在存储过程中编写查询,而不是在SQL Server中编写内联查询,因为它是编译的,运行速度更快。我想知道这里是否也是如此。