最近我和mongodb官方司机一起玩.我遇到的问题是如何进行查询投影.示例,如果我有一个持久化对象
class A{
id
PropA
PropB
List<LargeObjects>
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能检索id,PropA和PropB而不是检索整个对象?如何使用mongodb官方c#驱动程序?
Mar*_*ski 13
可通过以下方式查询投影:
MongoCollection<>.Find().SetFields(include/exclude);
Run Code Online (Sandbox Code Playgroud)
从官方10gen MongoDB C#驱动程序的v1.8开始,(以及Zambonilli在之前的回答中没有提到),Select linq运算符将始终在客户端执行,而不是在数据库服务器上执行.
文档(也由Sunil Raj在之前的回答中提供):http: //docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/
在"Select"linq查询运算符下,页面的大约一半是一个大的红色框,内容如下:
警告:选择不会导致从服务器返回的字段更少.将整个文档拉回并传递给本机Select方法.因此,投影在客户端执行.
看看 FluentMongo:
https://github.com/craiggwilson/ Fluent-mongo/wiki/Linq
它也可以在 Nuget 上使用,搜索“fluencemongo”
| 归档时间: |
|
| 查看次数: |
5884 次 |
| 最近记录: |