如何在 MongoDB For C# 驱动程序中使用 FindOne 中的 SetField
我使用 mongodb 的官方 C# 驱动程序,我想使用 FindOne 查询(如 Find)中的 SetFields。
var query = Query.EQ("Name", name);
Users.Find(query).SetFields(Fields.Exclude("Password"));
是否可以这样做,因为 FindOne 返回实际的类而不是 mongodb 游标。
I use offical C# Driver for mongodb, I want to use SetFields from a FindOne query like Find.
var query = Query.EQ("Name", name);
Users.Find(query).SetFields(Fields.Exclude("Password"));
Is it possible to do that as FindOne return a actual class instead of mongodb cursor.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MongoCursor 的
SetFields
方法。FindOne 方法只是 MongoCursor 的包装,内部看起来是这样的:
如果您想向其中添加排除字段功能,您可以简单地为
MongoCollection
添加扩展方法:并像这样使用它:
SetFields
method of MongoCursor.Method FindOne just wrapper around MongoCursor and internally it looks so:
If you want add Exclude Fields functionality to it you can simply add extention method for
MongoCollection
:And use it like this:
我不确定 findOne 中的排除。
但您可以更好地使用带有 limit 1 的 find 来代替 findOne 。
这将返回一个游标,它当然支持排除字段。
像这样的东西:
I am not sure about exclusion in findOne.
But instead of findOne, you can better use find with limit 1 .
That would return a cursor, which will ofcourse support exclusion of a field.
Something like :