我将如何在C#中将此mongo查询转换为Query.EQ语句?
db.users.find({name: 'Bob'}, {'_id': 1});
换句话说,我不希望所有内容都返回C#-我只需要一个元素_id。与往常一样,Mongo C# Driver tutorial没有帮助。
最佳答案
更新:使用新的驱动程序版本(1.6+),您可以使用linq来避免对字段名称进行硬编码:
var users = usersCollection.FindAllAs<T>()
.SetFields(Fields<T>.Include(e => e.Id, e => e.Name));
您可以通过mongodb游标的
SetFields
方法做到这一点:var users = usersCollection.FindAllAs<T>()
.SetFields("_id") // include only _id
.ToList();
默认情况下,
SetFields
包含指定的字段。如果需要排除某些字段,可以使用:var users = usersCollection.FindAllAs<T>()
.SetFields(Fields.Exclude("_id")) // exclude _id field
.ToList();
或者您可以一起使用它们:
var users = usersCollection.FindAllAs<T>()
.SetFields(Fields.Exclude("_id") // exclude _id field
.Include("name")) // include name field
.ToList();