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

283
Visualizações
How can I query for specific number of documents but couldn't be duplicate of a specific property's value

I have this type of data on my server.

[
    {
        "brand": "Hyundai",
        "model": "Pickup -0395",
        "price": 80000
    },
    {
        "brand": "Hyundai",
        "model": "Sports Car -0305",
        "price": 70000
    },
    {
        "brand": "Tesla",
        "model": "Sports Car -05",
        "price": 180000
    },
    {
        "brand": "Tesla",
        "model": "Sedan -95",
        "price": 150000
    },
    {
        "brand": "BMW",
        "model": "Minivan -0395",
        "price": 100000
    },
    {
        "brand": "BMW",
        "model": "Sports car -0395",
        "price": 90000
    }
]

But , I want to get single document/product from each brand(property).

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

0

You'd need some criterion for which Hyundai/Tesla/BMW it is. Let's assume you want the cheapest in any case, you could go for

db.cars.aggregate([
  {$sort: {brand: 1, price: 1}},
  {$group: {_id: '$brand', cheapest: {$first: '$$ROOT'}}},
])
about 4 years ago · Juan Pablo Isaza Relatório

0

You can do something like this if you want to group it by brand on client side

const grouped = (data) => data.reduce((res, {brand, ...model}) => {
  const existing = res[brand] || []
  res[brand] = [...existing, model]
  return res

}, {})


const data = [
    {
        "brand": "Hyundai",
        "model": "Pickup -0395",
        "price": 80000
    },
    {
        "brand": "Hyundai",
        "model": "Sports Car -0305",
        "price": 70000
    },
    {
        "brand": "Tesla",
        "model": "Sports Car -05",
        "price": 180000
    },
    {
        "brand": "Tesla",
        "model": "Sedan -95",
        "price": 150000
    },
    {
        "brand": "BMW",
        "model": "Minivan -0395",
        "price": 100000
    },
    {
        "brand": "BMW",
        "model": "Sports car -0395",
        "price": 90000
    }
]

console.log(grouped(data))

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