#node.js #mongodb #mongoose #mongoose-populate
#node.js #mongodb #mongoose #mongoose-заполнить
Вопрос:
У меня есть две связанные модели: Recipe
и User
.
Когда я извлекаю рецепт и связанного пользователя из базы данных с помощью populate()
, я хочу, чтобы возвращаемый пользовательский объект имел id
свойство вместо _id
property.
const recipe = await Recipe.findOne({ _id }).populate('user', '-password');
Когда я регистрирую значение пользовательской модели, я хочу получить это:
{
id: 5eea82b11a97e9429ca61778,
name: 'John Doe',
email: 'johndoe@gmail.com'
}
Я попытался добавить id
свойство к пользовательскому объекту, это ничего не изменило. Я все еще получил _id
свойство.
recipe.user = { ...recipe.user, id: recipe.user_id };
Комментарии:
1. Есть ли какая-то конкретная причина, по которой вы хотите
id
вместо_id
?2. @Shadab В других частях моего приложения я мог использовать user
id
вместо_id
, но в этом методе заполнения это не работает. Я хочу использоватьid
вместо_id
для согласованности.
Ответ №1:
noteSchema.set('toJSON', {
transform: (document, returnedObject) => {
returnedObject.id = returnedObject._id.toString()
delete returnedObject._id
delete returnedObject.__v
}
})
Это то, что я использую для удаления подчеркиваний — вы можете просто преобразовать документ и удалить ненужные фрагменты