如何在C#驱动程序中编写以下MongoDB查询?

如何在C#驱动程序中编写以下MongoDB查询?,c#,mongodb,C#,Mongodb,我在Mongo控制台中编写了所需的确切查询,但在C#driver中重写它时遇到了问题。 这是文档的一个示例,它是一个简单的字典: { "_id" : ObjectId("539716bc101c588f941e2c27"), "_t" : "DictionaryDocument", "CsvSeparator" : ",", "SelectedAccounts" : "0", ... } 问题是: db.settings.find

我在Mongo控制台中编写了所需的确切查询,但在C#driver中重写它时遇到了问题。 这是文档的一个示例,它是一个简单的字典:

{
        "_id" : ObjectId("539716bc101c588f941e2c27"),
        "_t" : "DictionaryDocument",
        "CsvSeparator" : ",",
        "SelectedAccounts" : "0",
...
}
问题是:

db.settings.find({"SelectedAccounts" :{$exists:true}},{"SelectedAccounts":1, "_id":0} )
现在,我得到了第一部分,Find with exists working,但是如何在C#driver中编写第二个参数呢?因此,我只需要一个字符串,而不是整个文档

这是我到目前为止得到的C代码:

_collection.FindOneAs(typeof(DictionaryDocument), Query.Exists(key));
本例中的键为“SelectedAccounts”。我希望查询只过滤并返回我需要的数据,我不希望返回所有结果并在C#端进行搜索

编辑:我不介意把id传回去,但我不需要它。因此,如果可以用C#进行转换,则只有这一部分可以工作:


FindAs返回具有SetFileds方法的MongoCursor。这将返回一行数据,但不会返回对象,而是返回一行枚举:

_collection.FindAs(typeof(DictionaryDocument), Query.Exists(key)).SetFields(Fields.Include(key)).SetLimit(1);
_collection.FindAs(typeof(DictionaryDocument), Query.Exists(key)).SetFields(Fields.Include(key)).SetLimit(1);