Операторы запроса драйвера C # MongoDB в QueryDocument или $ not $ size альтернатива - PullRequest
1 голос
/ 09 сентября 2011

Я не мог найти что-то подобное, отсюда и вопрос. У меня есть коллекция страниц \ blarg, которая имеет массив категорий. Я хотел бы иметь возможность получить список существующих категорий, и я не хочу делать Map Reduce, поэтому я решил, что я просто вытяну все категории и затем отфильтрую их для уникальности на стороне клиента. Я хотел бы использовать только непустые массивы, поэтому разработал следующий запрос:

{Категории: {$ not {$ size: 0}}}

Однако я не знаю, как скопировать его с помощью драйвера. $ Not принимает значение BsonValue, а $ Size - только целое, я не уверен, как поместить условие $ Size в запрос $ Not. Я подумал, что мог бы использовать QueryDocument или что-то еще, но я не уверен, как эмулировать операторы через анонимные объекты (или, по крайней мере, я не видел никакой документации по нему).

P.S. Я понимаю, что мог бы сделать Query.EQ («Категории», BsonArray.Create (new List ())) или что-то еще, но мне интересен ответ для принципа этого на данный момент, я могу думать о другой сценарий, где я мог бы хотеть любые массивы, в которых есть, например, больше или меньше одной записи.

1 Ответ

1 голос
/ 13 сентября 2011

Вы можете выразить свой запрос в C # следующим образом:

var query = Query.Not ("Categories"). Размер (0);

Вы можете проверить, что это на самом делетот же запрос с:

var json = query.ToJson ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...