Сопоставить строку в массиве строкC#

Место общения программистов C#
Anonymous
Сопоставить строку в массиве строк

Сообщение Anonymous »

Я хочу найти документы с помощью оператора elementMatch (или другого метода, который работает лучше).

Пример:

Код: Выделить всё

{
"_id": "1",
"messages": [
"foo A",
"bar B"
]
},
{
"_id": "2",
"messages": [
"bar B"
]
}
Я хочу найти все документы, в которых строка foo содержится в любой строке массива messages.
Я пытаюсь заставить работать синтаксис, используя синтаксис BsonDocument в C#. У меня нет моделей C#, только BsonDocument/BsonValue.
Что-то вроде:

Код: Выделить всё

var Filter = Builders.Filter;
var ItemFilter = Builders.Filter;
var result = await collection.FindAsync(FindFilter.ElemMatch("messages", ItemFilter.???));
Как это будет работать? Учитывая приведенные выше документы, это должно вернуть первый документ с id=1, поскольку его массив сообщений содержит хотя бы одну строку, содержащую "foo".
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/788 ... of-strings

Вернуться в «C#»