Как запросить вложенную коллекцию монго - PullRequest
0 голосов
/ 03 мая 2019

У меня есть коллекция под названием «Профили», и она имеет такую ​​структуру:

{
_id : XXXXX,
classrooms:{
   owner:[],
   students: [XYSk0,CCD7U],
},
...
}

Я хочу получить профили с classrooms.students, равным CCD7U.

* 1007.* Я пытался использовать $elemMatch в функции публикации коллекции, но безуспешно:
Meteor.publish('StudentsInClassrooms', function(CCD7U){
   return Profiles.find({ classrooms : { $elemMatch :{ students : CCD7U }} });
});

Я даже пытался использовать точечную запись, но безуспешно:

Meteor.publish('StudentsInClassrooms', function(CCD7U){
   return Profiles.find({ 'classrooms.students' : CCD7U });
});

Как правильно запросить этовид вложенной коллекции?

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Вы должны использовать оператор "$ in" для такого запроса.

Profiles.find({ 'classrooms.students' : { $in :['CCD7U'] } } )

Ссылка: Документация MongoDB; $ В

0 голосов
/ 03 мая 2019

Когда вы обычно запрашиваете что-то, вы делаете это

Profiles.find( { 'classrooms': 'classroomName' } );

Но поскольку вы пытаетесь найти что-то из вложенного, вам нужно сделать это следующим образом

Profiles.find( { 'classrooms': { 'students' : CCD7U } } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...