javascript - Mongoose lägga till parentdoc om det inte finns ELLER lägga till subdoc om parentdoc finns men subdoc inte finns
I princip har jag en Användare som har en e-postadress och en lista över prenumerationer. Jag vill skapa Användaren med prenumerationen om användaren inte finns, om användaren finns men inte har prenumerationen vill jag helt enkelt lägga till den nya prenumerationen i Användarens lista över prenumerationer. Slutligen, om både Användare och prenumeration redan finns vill jag hantera den befintliga prenumerationen på mitt eget sätt.
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();
DB-design:
User: {
email,
subscriptions: [{
//sub-info
}]
}