c# - Mongodb -- 使用 c# 驱动程序包含或排除某些元素

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

https://stackoverflow.com/questions/8448179/

相关文章:

python - 为什么使用 update_one 更新记录会引发 ValueError?

python - 如何将 MongoDB 查询转换为 JSON?

mongodb - 使用 $toLower 更新 MongoDB 集合

mongodb - Mongo 计算一组文档中每个值的出现次数

mongodb - 在 mongodb 中存储图形

mongodb - Spring数据MongoDb : MappingMongoConverter

c# - ORM 与 NoSQL API 是多余的吗?

mongodb - 使用mongodb在UTC中存储日期时如何处理时区问题?

perl - 如何加快 MongoDB 插入/秒?

mongodb - 如何在 MongoDB 中删除或删除集合?