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
Seleccione ciertos atributos de un documento en mongodb usando mongoose para referencias dinámicas

¿Es posible seleccionar ciertos atributos de un objeto? por ejemplo, excluyendo un correo electrónico, logoUri... etc. e información personal de un vendedor al completar dinámicamente?

Aquí está mi esquema de mensajes:

 const messageSchema = mongoose.Schema({ chatId: { type: mongoose.Schema.Types.ObjectId, required: true, ref: "Chat", }, .... // sender can be type of User or Seller sender: { type: mongoose.Schema.Types.ObjectId, refPath: "senderType", required: true, }, senderType: { type: String, required: true, enum: ["User", "Seller"], }, readOn: { type: Date }, read: Boolean, //}, { sentOn: { type: Date, default: Date.now, }, });

aquí es donde relleno mi esquema:

 const messages = await Message.find({ chatId: chatId }) .populate("sender") .sort({ sentOn: -1, });

dado que cada uno tiene un atributo diferente, ¿hay alguna forma de seleccionar según el tipo de modelo que estoy rellenando dinámicamente? Por ejemplo, para el modelo de usuario:

 .select('-email -logoUri')

para el modelo de vendedor:

 .select('-address')
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Probablemente querrá configurar casos de uso con selectores para cada modelo para el que es el caso

 messageSelectors = { user: "-email -logoUri", seller: "-address", ... }

Luego, cada vez que necesite usar selectores para mensajes, puede usar selectores según lo que esté seleccionando

 function selectMessageAttributesFor(type, query){ //verify type is in messageSelectors selected = await Messages.find(query).select(messageSelectors[type]).exec(callback); }
about 4 years ago · Juan Pablo Isaza 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