Básicamente, tengo un usuario que tiene un correo electrónico y una lista de suscripciones. Quiero crear el Usuario con la suscripción si el usuario no existe, si el usuario existe pero no tiene la suscripción Quiero simplemente agregar la nueva suscripción a la lista de suscripciones de Usuarios. Finalmente, si tanto el usuario como la suscripción ya existen, quiero manejar la suscripción existente a mi manera.
await UserDocument.findOneAndUpdate( {'$and': [{ 'email': email, }, { 'subscriptions.product': product-id, }]}, {'$setOnInsert': newCustomerWithSubscription, '$push': {'email.$.subscription': newSubscription}}, {upsert: true, new: false}, async function(err: CallbackError, doc: UserSchemaType | null) { //Code to handle if both exists }).exec();Diseño de base de datos:
User: { email, subscriptions: [{ //sub-info }] }