Estoy tratando de empujar cada objeto dentro de una matriz a una matriz MongoDB usando mangosta
Este es un ejemplo de cómo se ve la estructura de mi colección de listas de reproducción:
playlist: { userName: 'user-name', userId: 'user-id', playlistArray: [ { playlistName: 'playlist1', playlistSongs: [ { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, ], }, { playlistName: 'playlist2', playlistSongs: [ { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, ], }, ], } Quiero insertar la siguiente matriz de objetos en la matriz playlistSongs que también tiene playlistName: 'playlist2' dentro del mismo objeto
[ { title: '1', duration: 123, uri: 'a' }, { title: '2', duration: 456, uri: 'b' }, { title: '3', duration: 789, uri: 'c' }, ]Así que el resultado se vería así:
playlist: { userName: 'user-name', userId: 'user-id', playlistArray: [ { playlistName: 'playlist1', playlistSongs: [ { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, ], }, { playlistName: 'playlist2', playlistSongs: [ { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, { title: '', duration: 0, uri: '' }, { title: '1', duration: 123, uri: 'a' }, { title: '2', duration: 456, uri: 'b' }, { title: '3', duration: 789, uri: 'c' }, ], }, ], }Aquí está mi código tratando de actualizar el modelo:
const newPlaylistSongs = [ { title: '1', duration: 123, uri: 'a' }, { title: '2', duration: 456, uri: 'b' }, { title: '3', duration: 789, uri: 'c' }, ]; await playlist .updateOne( {}, { $addToSet: { 'playlistArray.$[pl].playlistSongs': { $each: { newPlaylistSongs } }, }, }, { arrayFilters: [ { 'pl.playlistName':'playlist2', }, ], } ) .catch(console.error);Pero he recibido este error:
MongoServerError: The argument to $each in $addToSet must be an array but it was of type object