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

160
Visualizações
prevent duplicated values mongodb find query

(javascript)

hello, i have a mongodb collection who have this schema:

{
  _id: "any",
  ids: {
     user: "some value who can repeat" // and more keys but i will use this key here
  },
  time: 400 // can vary
}

I need to get some documents from this collection, filter to "time less than 700" and dont repeat the key "user"

I tried to use js tools for this, but in only 1 find query i get +900 documents

const ids = [];

const query = (await Personagens.find({ time: { $lt: 700 }}).sort({ time: 1 }))
.filter(x => {
    if (!ids.includes(x.ids.user)) {
        ids.push(x.ids.user);
        return true;
    }
}).slice(0, 50)

the output who shows +900 documents in 1 query

so i want to know if has some mongo db operator to filter repeated keys (the key ids.user) and get only 50 documents (obs: i use mongoose)

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

db.collection.aggregate([
  {
    "$match": {
      time: {
        "$gt": 700
      }
    }
  },
  {
    "$group": {
      "_id": "$ids.user",
      "doc": {
        "$push": "$$ROOT"
      }
    }
  },
  {
    "$set": {
      "doc": {
        "$first": "$doc"
      }
    }
  },
  {
    "$replaceWith": "$doc"
  }
])

mongoplayground

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