Me gustaría actualizar un campo que tengo en mi modelo Post . El modelo Post se parece a lo siguiente:
const postSchema = new Schema({ title: { } likes: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User'}], upvotes: { type: Number, default: 0 } }) Tengo una base de datos de posts que me gustaría update contando sus Me likes (ID almacenados) y update los upvotes a favor según la cantidad de Me gusta en el documento. ¿Hay alguna forma de hacer esto? Puedo usar el Mongo shell .
Para la versión 4.2+ de Mongo, puede usar actualizaciones canalizadas para hacer esto, así:
db.collection.updateMany( {}, [ { $set: { upvotes: { $size: "$likes" } } } ])Para versiones menores de Mongo, tendrá que leer cada documento en la memoria y ejecutar una actualización para él.