Сопоставить строку в массиве строк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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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