Así que estoy tratando de obtener un conjunto de documentos de miembros de la empresa que corresponden a un usuario específico y completar el campo de la empresa de cada documento en el proceso. El objetivo aquí es obtener los campos _id y nombre de cada documento de la empresa que corresponde a un miembro de la empresa. He tenido éxito en la obtención de los documentos de los miembros de la empresa, sin embargo , el campo _id de cada empresa poblada se devuelve junto con el constructor "nuevo ObjectId()" como se muestra a continuación:
The company members: [ { company: { _id: new ObjectId("6296180fj2a538be87f058f"), name: 'aaa' } } ]Por supuesto, el resultado deseado es obtener solo el contenido de _id sin el constructor ObjectId() . Intenté usar el método sugerido en la respuesta aceptada de esta publicación de StackOverflow , sin embargo, obtuve los mismos resultados (lo que significa que el constructor ObjectId() no desapareció):
// Fetch up to 10 company members and populate their companies. let companyMembers = await CompanyMember.find({user: user_id}, {_id: 0, company: 1}).populate({ path: 'company', match: { name: { $regex : new RegExp(company_name, "i") } }, select: { _id: {"$toString": "$_id"}, name: 1 } }).limit(10).exec();¿Has probado la función lean() ?