¿Cómo puedo definir el tipo de argumento en una función como una cadena de la lista de cadenas y ejecutar una consulta mongodb? Lo que estoy haciendo se da a continuación:
usuarios.servicios.ts
async findOne(key: "_id" | "email" | "username", value: string) { const user = await this.userModel.findOne({ key: value }).exec(); if (!user) { throw new NotFoundException(); } return user; }findOne en users.services.ts const user = await this.usersService.findOne("username", username);
No funciona y al depurar no selecciona los valores de clave y valor.
Muchas gracias por su ayuda de antemano.
Necesitas usar $or consulta
{ $or: [ {"_id": value}, {"email": value}, {"username": value} ] } Es mejor tener tres o más funciones diferentes y hacer una llamada con la tecla dada que tener una lista de or condiciones.