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

455
Visualizações
obteniendo el conteo dentro de un campo de matriz de esquema findOne de una mangosta

Quiero usar Mongoose para devolver información sobre un usuario para completar su perfil. He estado usando findOne para completar una lista de sus comentarios junto con información básica del perfil a través de documentos incrustados y con .populate. Quiero contar los amigos que tienen contando cuántos objetos hay en la matriz de amigos.

Parece que el agregado es uno de hacer eso, pero ¿cómo puedo usar ambos? ¿O hay una manera simple de hacer un conteo en la consulta findOne?

 var UserSchema = new Schema({ username: String, comments : [{ type: Schema.Types.ObjectId, ref: 'Comment' }], friends: [ { id: { type: Schema.Types.ObjectId, ref: 'User' }, permission: Number } ] }) var User = mongoose.model('User', UserSchema); var Comment = mongoose.model('Comment', CommentSchema); app.get('/profile/:username', function(req, res) { User .findOne({ username: req.params.username }, 'username friends -_id') .populate({ path: 'current', model: 'Comment', select: 'comment author -_id date', populate: { path: 'author', model: 'User', select: 'username firstName lastName -_id' } }) .exec(function(err, user) { // }) )}

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

0

Si el usuario regresa con una matriz de amigos, ¿por qué no regresa solo user.friends.length?

Si solo quieres contar, usa esto

 User.aggregate([ { $match: { username: req.params.username } }, { $unwind: "$comments" }, { $lookup: { from: "Comment", localField: "comments", foreignField: "_id", as: "comments" } }, { "$group": { "_id": "$_id", "friends": { "$first": "$friends"}, "comments": { "$push": "$comments" } } }, { $project: { _id: 0, count: {$size: '$friends'}, comments: 1, username: 1 } } ]).exec() ...
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
Assistente virtual