Kur*_*oro 8 c# mongodb mongodb-.net-driver
我使用mongodb的官方C#驱动程序,我想使用像Find这样的FindOne查询中的SetFields.
var query = Query.EQ("Name", name);
Users.Find(query).SetFields(Fields.Exclude("Password"));
Run Code Online (Sandbox Code Playgroud)
是否可以这样做,因为FindOne返回一个实际的类而不是mongodb游标.
And*_*ich 10
SetFields MongoCursor的方法.
方法FindOne只是包装MongoCursor并在内部看起来如此:
public virtual TDocument FindOneAs<TDocument>() {
return FindAllAs<TDocument>().SetLimit(1).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
如果要为其添加排除字段功能,只需添加扩展方法MongoCollection:
public static class MongodbExtentions
{
public static T FindOne<T>(this MongoCollection collection,
params string[] excludedFields)
{
return collection.FindAllAs<T>().SetLimit(1)
.SetFields(excludedFields)
.FirstOrDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
var user = Users.FindOne<User>("Password");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7988 次 |
| 最近记录: |