Я хотел удалить запись пользователя из массива roleAssigned В коде:
Contact.update({ firstName:'Abhishek'},{$pull: { roleAssigned:'user'}});
Вот так выглядит модель Contact mongoDB:
[{
roleAssigned: ['user', 'admin'],
_id: 5b9b8ef904bc042c8f94f1fe,
firstName: 'abhishek',
lastName: 'soni',
date: 2018-09-14T10:35:37.922Z,
__v: 0
}]
export const contactschema = новая схема ({firstName: {type: String, required: 'enter your first name'}, lastName: {type: String, required: 'enter your last name'}, roleAssigned: {type: Array, default : []}, электронная почта: {type: String}})
"Abhishek" и "abhishek" оба разные. Либо используйте компактный a, либо используйте $regex в приведенном выше запросе. Как то так Contact.update({ firstName:{ $regex: 'Abhishek', $options: "i" }},{ $pull: { roleAssigned: 'user' }})Я внес изменения, но получаю эту ошибку msg errmsg: 'Невозможно применить $ pull к значению, не являющемуся массивом'
Я выполнил тот же запрос с тем же документом, и у меня это сработало. Возможно, вы делаете что-то не так.
@AnthonyWinzlet да, спасибо, это сработало!





Вы можете использовать следующее решение для решения вашей проблемы:
{ $pullAll: { roleAssigned: ['user'] } };
не могли бы вы опубликовать схему, пожалуйста?