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

210
Visualizações
La búsqueda de Redis-om no puede encontrar la clave después de la actualización

Tengo un comportamiento extraño con mi aplicación Redis-OM, entiendo que todavía es una versión muy BETA del software, pero solo quería asegurarme de que no estaba haciendo algo tonto (que podría ser)

Así que estoy configurando una aplicación para mantener una lista de reproducción de ID de video dentro de una sala que almaceno temporalmente en una base de datos en la nube de Redis.

Tengo una función que crea una sala, una que obtiene los detalles de la sala (todo lo que hay actualmente en la sala) y otra que agrega un nuevo video a la lista de reproducción dentro de esa sala. ( ver más abajo ) - NOTA: la variable de datos dentro de createRoom(data) es solo una cadena de la ID de la habitación

 class Room extends Entity {} let schema = new Schema( Room, { code: { type: 'string' }, playlist: { type: 'array', videos: { type: 'object', }, }, }, { dataStructure: 'JSON', } ); export async function createRoom(data) { await connect(); const repository = new Repository(schema, client); const room = repository.createEntity(data); const id = await repository.save(room); await client.execute(['EXPIRE', `Room:${id}`, 43200]); return id; } export async function getRoom(code) { await connect(); const repository = new Repository(schema, client); const room = await repository .search() .where('code') .equals(code) .returnFirst(); return room; } export async function addVideoToRoom(code, videoDetails) { const room = await getRoom(code); await room.playlist.push(videoDetails); await connect(); const repository = new Repository(schema, client); const id = await repository.save(room); return id; }

El principal problema que tengo es agregar un segundo video a la lista de reproducción. Lo que sucede es

  • Crear sala: agrega una nueva sala a la base de datos
  • Buscar vídeo
  • Haga clic para agregar video a la base de datos (el video se agregó correctamente)
  • Haga clic para agregar un segundo video a la base de datos (falla porque getRoom(code) falla; devuelve nulo)

Esto funcionaba ayer, sin embargo, no estoy seguro de por qué ya no funciona.

Si alguien tiene alguna idea de por qué podría ser, hágamelo saber, tengo la sensación de que puede ser cómo estoy manejando clientes o índices con Redis, por lo que también he incluido mis funciones para los que se encuentran a continuación.

 const client = new Client(); async function connect() { if (!client.isOpen()) { await client.open(process.env.REDIS_URL); } } export async function createIndex() { await connect(); const repository = new Repository(schema, client); await repository.dropIndex(); await repository.createIndex(); }

Muchas gracias a los programadores de Stack. Si estoy siendo muy tonto, me disculpo.

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

0

Redis OM para Node.js no admite objetos anidados ni un tipo de "objeto" dentro del esquema. Los tipos válidos son 'cadena', 'número', 'booleano' y 'matriz'. Las matrices son solo matrices de cadenas. El resto se explica por sí mismo.

Si desea tener una sala que tenga varios videos, debe definir una entidad de sala, tal vez con una lista de reproducción que se define como una matriz no de objetos, sino de identificadores de video.

Los detalles sobre esto se pueden encontrar en el LÉAME .

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
Recomende algumas ofertas para mim
Preciso de ajuda