Сумма мангуста $размер поля массива вложенных документов

#mongoose

#мангуст

Вопрос:

У меня есть такой документ

 {  _id:ObjectId,  subdocuments:[{  arrayField:[String]  }] }  

Как я могу получить общую длину arrayField s, содержащуюся в моем родительском документе? Я могу получить количество вложенных $size : "$subdocuments" документов , но мне нужно что-то вроде $size : "$subdocuments.arrayField"

Ответ №1:

Я не могу придумать лучшего способа, но это должно сработать:

 db.collections.aggregate(  { $unwind: "$subdocuments" },  { $project: {  "arrayFieldLength": { $strLenCP: "$subdocuments.arrayField"  }  });  

Ответ №2:

То, что я в итоге сделал, — это использовал $map оператор вот так

 {  $addFields:{  myLength:{  $sum:{  $map: {  input: "$subdocuments.arrayField",  as: "iterator",  in: { $size: "$iterator" },  },  }  }  } }