Quiero contar la cantidad de Me gusta y comentarios, ambos de los cuales son matrices en el esquema. El esquema se ve así:
const PostSchema = new mongoose.Schema({ text: { type: String, required: "Name is required", }, photo: { data: Buffer, contentType: String, }, likes: [{ type: mongoose.Schema.ObjectId, ref: "User" }], comments: [ { text: String, created: { type: Date, default: Date.now }, postedBy: { type: mongoose.Schema.ObjectId, ref: "User" }, likes: Number, }, ], postedBy: { type: mongoose.Schema.ObjectId, ref: "User" }, created: { type: Date, default: Date.now, }, });Como tanto los me gusta como los comentarios son matrices, quiero contar la cantidad de elementos dentro de ellos y lo estoy haciendo así, leí sobre la función agregada pero no puedo entender cómo usarla aquí ya que tengo que iterar a través de todos los documentos de publicación y buscar sus gustos y comentarios.
const leaderboard = (req, res) => { Post.find({}, function (err, docs) { docs.forEach(function (data) { var userid = data.postedBy; console.log(userid); var likes = data.likes.length; console.log(likes); var comments = data.comments.length; console.log(comments); const date2 = new Date(); const diffTime = Math.abs(date2 - data.created); const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); console.log(diffDays); const updated = User.findByIdAndUpdate( userid, {score: likes+comments+diffDays }, function (errr, doc) { if (errr) { console.log(err); } else { console.log("Updated User : ", doc); } } );Realmente apreciaré la ayuda aquí, ¡Gracias!