我将如何在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();

09-20 00:40