Solo quiero ejecutar una declaración solo si el objeto no es nulo. Si es nulo, no quiero hacer nada. Quiero estar seguro de si hay una forma adecuada de lograr esto. Por ejemplo lo probé en MongoDB Playground y no funcionó. Aquí está el enlace al parque infantil: https://mongoplayground.net/p/yOmRxML88zi
Aquí está la instrucción if-else que quiero ejecutar:
db.collection.aggregate([ {...}, service_type ? { $match: { serviceType: service_type } } : null, {...}, ]);Entonces, si service_type no es nulo, ejecute la declaración; de lo contrario, salte al siguiente objeto en la agregación. Lo que quiero hacer en esta ocasión es obtener la lista de todo en la base de datos (objetos) que contienen cierto tipo de servicio proporcionado por el usuario.
El esquema se parece a esto:
const sellerSchema = new mongoose.Schema({ user_id: { type: mongoose.Schema.Types.ObjectId, ref: "User", }, ..., serviceType: [{ String }], });Si está usando Mongoose, supongo que está escribiendo su aplicación usando Javascript o TypeScript.
¿Qué te impide, entonces, construir tu consulta de esta manera?
const aggregatePipeline = []; if (service_type) aggregatePipeline.push({ $match: { serviceType: service_type }}); ... db.collection.aggregate(aggregatePipeline).exec()