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

242
Visualizações
¿Cómo puedo enumerar todos los registros para ver si están duplicados?

Tengo un problema que no puedo resolver. Tengo una tabla en MongoDB, y esta es la estructura:

 const shopEconomy = new mongoose.Schema({ guildID: { type: String }, name: { type: String }, value: { type: Number }, description: { type: String }, rolereq: { type: String }, roleadd: { type: String }, roleremove: { type: String }, buyinfo: { type: String } });

Necesito enumerar todos los nombres de la tabla (shopData.name) y luego verificar si el nombre escrito existe en la base de datos. Intenté hacer algo como el siguiente, pero no funciona.

 const shopData = await shopEconomy.find({ guildID: message.guild.id }); let categories = []; let data = new Object(); for(const i in shopData){ data += `${shopData[i].name}\n` categories.push(data) }

¿Alguien podría echarle un vistazo a esto y ayudarme?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Parte del problema aquí proviene del uso de un bucle for...in que trata shopData como un objeto y recorre todas sus propiedades. En su lugar, intente usar un bucle for...of que trate shopData como una matriz y recorra todos los objetos que contiene.

 ... for(const i of shopData) { data += `${i.name}\n` ... }

Consulte también esta pregunta sobre for...in vs for...of y esta pregunta sobre bucles de JavaScript.

about 4 years ago · Santiago Trujillo Relatório

0

El título de la pregunta no coincide exactamente con la descripción de la pregunta. Dada la descripción, supongamos que el nombre escrito se asigna a var typedName .
Supongamos también que ha vinculado su esquema shopEconomy a un modelo que realmente interactuará con una colección mongodb llamada shopData . Entonces esto iterará todos los documentos en shopData :

 var found = false; cursor = db.shopData.find(); // get EVERYTHING cursor.forEach(function(doc) { print(doc['name']); if(doc['name'] == typedName) { found = true; } }); if(found) { print(typedName,"was found"); }

Es probable que el OP quiera encontrar un nombre duplicado en la colección, para lo cual funcionará esta canalización:

 db.shopData.aggregate([ {$group: {_id: '$name', N:{$sum:1}} }, {$match: {'N':{$gt:1}}} ]);
about 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