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

时间:2014-06-10 15:04:50

标签: c# mongodb

我在Mongo控制台中编写了我需要的确切查询,但是我在使用C#驱动程序重写它时遇到了麻烦。 这是该文档的一个示例,它是一个简单的字典:

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

以下是查询:

db.settings.find({"SelectedAccounts" :{$exists:true}},{"SelectedAccounts":1, "_id":0} )

现在,我得到了第一部分,Find with exists working,但是如何在C#驱动程序中编写第二个参数?我只是喜欢一个字符串,而不是整个文档。

到目前为止我的C#代码:

_collection.FindOneAs(typeof(DictionaryDocument), Query.Exists(key));
在这种情况下,

键是" SelectedAccounts"。我希望查询过滤并仅返回我需要的数据,我不想返回所有结果并在C#端搜索。

编辑:如果_id被传回,我不介意,但我不需要它。因此,如果可以在C#中转换,那么只有这部分可以工作:

db.settings.find({"SelectedAccounts" :{$exists:true}},{"SelectedAccounts":1} )

1 个答案:

答案 0 :(得分:2)

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

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