如何将此 mongo 查询转换为 C# 中的 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();
关于c# - Mongodb -- 使用 c# 驱动程序包含或排除某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448179/