Tengo una colección en los usuarios de mi base de datos mongodb y cada usuario contiene publicaciones de nombre de campo. Quiero obtener datos de cambios en tiempo real de ese campo de publicaciones cuando un usuario agrega una nueva publicación o actualiza una publicación existente y toma el valor actualizado del servidor de socket y lo envía de vuelta a la interfaz.
los documentos de un solo usuario se ven así
[ { "_id" : "613fb31a52ef63541d036fcd", "posts"["613fb31a52ef63541d036fdf", "613fb31a52ef63541d036ff1"], "mobiles" : [ "01751150412"], "languages" : [ "English", "Bangla"], } ] Al principio, probé con const userChangeStream = connection.collection("users").watch()
eso me da todos los campos de la colección de usuarios que ni siquiera se cambiaron.
Luego seguí esta pregunta de stackoverflow y actualicé mi código
const filter = [ { $match: { $and: [ { "updateDescription.updatedFields.posts": { $exists: true } }, { operationType: "update" } ] } } ] const options = { fullDocument: 'updateLookup' }; const postsChangeStream = connection.collection("users").watch(filter,options); postsChangeStream.on("change", (change) => { console.log('change on', change); });Ahora no obtengo ninguna respuesta al agregar en ese campo de publicaciones .