Как написать следующий запрос MongoDB в C # Driver?

1

Я написал точный запрос, который мне нужен на консоли Mongo, но у меня возникли проблемы с переписыванием его в драйвере С#. Вот образец документа, это простой словарь:

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

Здесь запрос:

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

Теперь у меня есть первая часть, Find with exists работает, но как записать второй параметр в С# драйвер? В результате я хотел бы получить только одну строку, а не весь документ.

Здесь код С#, который я получил до сих пор:

_collection.FindOneAs(typeof(DictionaryDocument), Query.Exists(key));

ключ в этом случае - "SelectedAccounts". Я хотел бы, чтобы запрос фильтровал и возвращал только нужные мне данные, я не хочу возвращать все результаты и искать на стороне С#.

EDIT: Я бы не прочь, если бы я вернулся, но мне это не нужно. Таким образом, только эта часть будет работать, если она может быть преобразована в С#:

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

1 ответ

2
Лучший ответ

FindAs возвращает MongoCursor, который имеет метод SetFileds. Это вернет одну строку с запрошенными данными, но не вернет объект, а скорее перечисление с одной строкой:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню