У меня есть эта маленькая схема для пользователей:Mongoose - удалить поддокумент элемент массива
{
username: String,
contacts: Array
}
Так, например, контакты некоторых пользователей будет выглядеть следующим образом:
{
username: "user",
contacts: [{'id': ObjectId('525.....etc'), 'approved': false}, {'id':ObjectId('534.....etc'), 'approved': true}]
}
Теперь мне нужно удалить элемент от контактов так что я:
model.findByIdAndUpdate(23, {'$pull': {
'contacts':{'id':'525.....etc'}
}});
, но, похоже, не работает, п Ошибки вывода, но он не будет удален, я просто хотел бы вернуть этот документ для пользователя:
{
username: "user",
contacts: [{'id':ObjectId('534.....etc'), 'approved': false}]
}
, как добиться этого?
привет спасибо, но теперь я получил эту ошибку: ** [MongoError: исключение: не может использовать часть (контакты contacts.id) для обхода элементов ({контактов: [{ID: ObjectId ('543394bb964ac60915ceba8b'), одобрено: false}, {id: ObjectId ('543399f9964ac60915ceba8c'), одобрено: false}]}) ** что это может быть? Я использовал вашу точную аннотацию - – sbaaaang
@sbaaaang Что вы на самом деле делаете? Вы используете форму «точечной нотации», как вам сказали? BTW Спасибо за то, что я четко показал, что ваши фактические данные отличаются от того, как вы опубликовали, что, вероятно, является частью проблемы здесь снова. Пожалуйста, отредактируйте, чтобы показать свою реальную структуру данных. –
есть используя * точка запись * подобный u сказал, да im используя ObjectIds, но хорошо, что это не проблема, я думаю: P nope? (отредактированный вопрос) – sbaaaang