Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

219
Visualizações
El documento anidado GraphQL devuelve nulo en la mutación

Estoy usando MongoDB con Mongoose y GraphQL para un proyecto de clase. Estoy atascado en un problema con GraphQL que devuelve un valor nulo en los campos dentro de una referencia de documento anidado (publicado por que hace referencia al esquema de usuario). Espero que los campos se completen con los datos del objeto al que se hace referencia, pero solo se devuelve el ID.

Modelo

 const postSchema = new Schema( { postText: { type: String, required: 'You need add text to your post', minlength: 1, maxlength: 10000, }, createdAt:{ type: Date, default: Date.now, get: createdAtVal => dateFormat(createdAtVal) }, postedBy: { type: Schema.Types.ObjectId, ref: "User", required: true }, comments: [commentSchema] }, { toJSON: { virtuals: true, getters: true }, } ) postSchema.virtual('commentCount').get(function() { return this.comments.length; }); const Post = model('Post', postSchema); module.exports = Post;

TipoDef

 type Post { _id: ID postText: String createdAt: String postedBy: User comments: [Comment] commentCount: Int }

resolver

 addPost: async (parent, args, context) => { if (context.user) { const post = await Post.create({ ...args, postedBy: context.user._id }); await User.findByIdAndUpdate( { _id: context.user._id }, { $push: { posts: post._id } }, { new: true } ); return post; } throw new AuthenticationError('You need to be logged in!'); }

Puedo consultar con éxito la publicación y completar el campo de referencia con el _id, el nombre de usuario y la imagen (url) del usuario. Cuando ejecuto la mutación, el nombre de usuario y la imagen devuelven un valor nulo.

Aquí está mi mutación:

 mutation addPost($PostText: String!) { addPost(postText: $postText) { _id postText createdAt postedBy { _id username image } commentCount comments { _id } } }

Y aquí está la respuesta que recibe:

 { "data": { "addPost": { "_id": "60612871bd89e52ca08d3ea1", "postText": "This is an example of a post.", "createdAt": "Mar 28th, 2021 at 21:08 pm", "postedBy": { "_id": "6060a868d856f01738f45185", "username": null, "image": null }, "commentCount": 0, "comments": [] } } }

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como solo está obteniendo la referencia y no hay datos adicionales, creo que simplemente olvidó completar el campo de usuario.

Tratar:

 return await post.populate('postedBy').execPopulate();
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda