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);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей