我正在寻找使我们的mongo查询更快、更有效率的方法。
我们已经通过使用GetCollection<T>("CollectionName")获得了集合。
但是,我们应该使用Query.EQ("fieldname", "fielddata")或Query<t>.EQ(x => x.FieldName, "fielddata")构建查询吗?我个人更喜欢第二种方式,但它更有效率吗?
有什么不同吗?我们应该用哪一种?
假设它们运行在相同的硬件上,查询相同的数据库。
发布于 2014-10-03 17:56:32
它们与Query<t>.EQ(x => x.FieldName, "fielddata")和Query.EQ("fieldname", "fielddata")没有区别,最终两者都将转换为Bson文档,成为{ 'FieldName', 'fielddata'}。
发布于 2014-10-09 15:09:01
好吧..。
Query.EQ(x => x.FieldName,"fieldData")和Query.EQ( "fieldName“,"fieldData")都将产生相同的json -{ "fieldName":"fieldData”},前提是您已经将T.FieldName属性映射到camelCase“fieldName”。
考虑到这一点,不使用泛型当然会带来更快的体验。它必须做更少的工作。使用类型化表单意味着我们需要找到映射信息并加以应用。
但是,这里的速度增长在很大程度上是不明显的,除非您每秒做数百万这样的事情,这很可能会被满足查询服务器端的网络和mongo所掩盖。最好的办法就是测量它。
最终,泛型表单存在的原因是,您不必在任何地方都拥有映射信息。
https://stackoverflow.com/questions/26182390
复制相似问题