Как вы запрашиваете встроенный документ в MongoDB, возвращая подмножество результатов? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть такая структура данных:

Post
{
'id': $_id,
'user' : ['first_name' : 'Joe', 'last_name' : 'Devon' ],
'text' : 'blah',
'comment' : 
  ['first' : 'Joe', 'last' : 'Devon', 'comment' : 'hello'],
  ['first' : 'John', 'last' : 'Smith', 'comment' : 'bye', 'hidden' : true],
  ['first' : 'Joe', 'last' : 'Devon', 'comment' : 'world']
},
{
'id': $_id,
'user' : ['first_name' : 'Joe', 'last_name' : 'Shmoe' ],
'text' : 'meh',
'comment' : 
  ['first' : 'Joe', 'last' : 'Devon', 'comment' : 'sup'],
},
{
'id': $_id,
'user' : ['first_name' : 'Mr.', 'last_name' : 'Smith' ],
'text' : 'bah',
'comment' : 
  ['first' : 'Joe', 'last' : 'Devon', 'comment' : 'sup mon'],
}

Я пытаюсь выполнить запрос, который будет возвращать все, кроме комментария со скрытым значением: true.

Перепробовал все, что не работает. Ищу одну команду, которая будет работать. Помогите пожалуйста:)

1 Ответ

2 голосов
/ 23 декабря 2011

В настоящее время это невозможно сделать с mongodb, и вам придется фильтровать комментарии на стороне клиента.

Механизмы фильтрации служат только для сопоставления или не сопоставления целых документов, а затем извлекают подмножество их полей, нок сожалению, вы не можете указать критерии, по которым из них нужно возвращаться.

Если бы у вас была коллекция для комментариев, вы могли бы отфильтровать те, которые имеют hidden: true.

...