Tengo una mesa similar. y en esa tabla similar tengo una matriz llamada videoLikes. Necesito almacenar los datos de usuario a los que les gustó el video. entonces, cuando intento insertar un objeto con el campo de ID de usuario en esa matriz, obtuve datos duplicados. mi ID de usuario es único en el modelo, por lo que necesito presionar solo a un usuario una vez en esa matriz. Probé la operación $addToSet pero no funciona correctamente.
Mi caso de uso es cuando un usuario intentó que le gustara el video por segunda vez, no lo empujará a esa matriz.
{ "videoId": 275, "likesCount": 4, "videoLikes": [ { "userId": 149, "uid": "5B8slS9AqpeNMJWK5CgbwzdXhQ82", "_id": { "$oid": "625569ecd56d19a1954f5cc2" } }, { "userId": 149, "uid": "5B8slS9AqpeNMJWK5CgbwzdXhQ82", "_id": { "$oid": "625569ecd56d19a1954f5cc4" } }, { "userId": 149, "uid": "5B8slS9AqpeNMJWK5CgbwzdXhQ82", "_id": { "$oid": "625569ecd56d19a1954f5cc0" } }, { "userId": 149, "uid": "5B8slS9AqpeNMJWK5CgbwzdXhQ82", "_id": { "$oid": "625569ecd56d19a1954f5cbe" } } ] }Al usar disparadores, tendrá tiempo para verificar si el usuario le ha gustado o no y realizar una acción en su nombre. para verificar si a un ID de usuario le gustó o no, puede usar Object en lugar de un ejemplo de matriz:
let schema=mongoose.Schema{ videoId:Number, likesCount:Number, videoLikes={{uid:Number}} }