Поиск массива полей MongoDB (C #, Как?) - PullRequest
4 голосов
/ 28 марта 2011

Подскажите пожалуйста, как сделать поиск по полям-массивам?У меня есть несколько полей типа List<Int64>.Например, у первого документа есть массив полей с номерами [1,2,3,4], а у второго документа есть такое поле с номерами [4,5,6,7].

Я хочу найти документы, где мойПоле состоит из 3 и 4 цифр, поэтому это первый документ.Я ищу примеры, основанные на официальном драйвере MongoDB C #;)

Большое спасибо !!!

Ответы [ 2 ]

8 голосов
/ 28 марта 2011

Вы должны использовать Query.All().Код такой:

var array = new List<int>() {3, 4};
var query = Query.All("SomeArray", new BsonArray(array));
collection.Find(query);

Результатом Query.All будут все документы, которые имеют вложенный массив SomeArray со значениями 3 and 4.

Если вы хотите 3 or 4, используйте Query.In("SomeArray", new BsonArray(array))

Ссылки на документацию: $ all , $ in

1 голос
/ 21 августа 2014

В последних версиях драйвера C # вы можете использовать:

Query<MyType>.All(_ => _.MyPropertyName, array));
...