Как удалить элемент массива в метеоре с помощью монго?

У меня есть это приложение, над которым я работаю...

http://stevedavis.meteor.com/

Вы можете увидеть содержимое коллекции групп, выполнив «Groups.find()» в консоли.

У меня есть это в моем JS...

Template.listGroups.events({
  'click .deleteMember': function(){
    var groupID = this.groupID,
        firstName = this.firstName,
        lastName = this.lastName;
  }
});

Итак, я хочу иметь возможность удалить участника из группы, если я нажму X ​​рядом с его именем. Я пробовал...

Groups.update( {"_id": groupID }, {$unset: { "members" : {"firstName": firstName, "lastName": lastName} } } );

но он удалил ВСЕХ участников. Я только хочу, чтобы он удалил элемент членов, который соответствует первому и последнему имени элемента, на который нажали. Спасибо.


person Steven    schedule 24.04.2013    source источник
comment
кажется дубликатом вашего вопроса об удалении одного и того же элемента из нескольких документов...   -  person Asya Kamsky    schedule 25.04.2013


Ответы (2)


Ах, мне просто нужно было изменить «$ unset» на «$ pull». Я добавил через «$push», поэтому подумал: «Есть ли метод $pull?» И был! :)

Groups.update( {"_id": groupID }, {"$pull": { "members" : {"firstName": firstName, "lastName": lastName} } } );
person Steven    schedule 25.04.2013

Я нашел эту замечательную страницу в документации MongoDB, которая показывает запрос/проекцию, которую вы здесь обнаружили, а также многое другое!

документация по MongoDB.

Спасибо, что спросили об этом - ваш ответ направил меня на правильный путь.

person user2132316    schedule 06.09.2013