let product_params;
product_params = await BlackProduct.findOne({id: 1})
.then(res => (res))
if (!product_params){
return null
// Если документ не найден, то заканчиваю выполнение функции
}
else{
delete product_params._id;
}
console.log(product_params)
Но когда вывожу в консоль
console.log(product_params)
то все равно свойство _id присутствует.
// delete product_params._id === true
В Mongoose свойство "id" создается по умолчанию и является виртуальным, возвращающим значение "_id". Если вы хотите отключить автоматическое создание свойства "id", вы можете сделать это при определении схемы:
var schema = new Schema({ name: String }, { id: false });
Так же вы можете трансформировать product_params
в объект и удалить ключ _id:
const data = product_params.toObject();
delete data[_id];
Иллюстрирующий пример (по итогам обсуждения в комментах):
class A {
get _id() {
return Math.random();
}
}
const obj = new A();
console.log(obj._id);
delete obj._id;
console.log(obj._id);
delete obj._id;
console.log(obj._id);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Читал, что массив в качестве аргумента в параметр другой функции работает так: типо массив громоздкий, и поэтому в параметр другой функции...
Знаю, вопрос для подавляющего большинства травиальныйНо я уже не вижу ошибки