findByIdMongoose()
вернет неопределенное значение, потому что do c, который вы пытаетесь вернуть, будет возвращено после вызова этой функции asynchronous nature of node js
. И нет никаких оснований ждать non async
функции findByIdMongoose()
.
Вы можете сделать что-то вроде этого
async function pushSubdocument() {
const doc = await findByIdMongoose(); //I ask to await
console.log(doc);//I am printing here, and it is undefined
}
async function findByIdMongoose() {
let doc= await Document.findById({ _id: "5e6d0f3e8afae22ee0cc238c" }).select("friends");
doc.friends.push({
name: "Maria",
email: "mariadomar@test.com",
relatives: []
});
await doc.save();
return doc ; // now it will be wrapped in promise and you can await the function
}