¿Cómo agrupo el campo de date uno al siguiente en cada documento?
{ _id: ObjectId('...'), date: [ISODate('2022-05-27T00:00:00.000+00:00'), ISODate('2022-05-28T00:00:00.000+00:00') ...] }El documento deseado sería este:
{ _id: ObjectId('...'), date1: ISODate('2022-05-27T00:00:00.000+00:00'), date2: ISODate('2022-05-28T00:00:00.000+00:00') }Esta es una forma de hacerlo.
db.collection.aggregate([ { "$replaceWith": { "$mergeObjects": [ { "_id": "$_id" }, { "$arrayToObject": { "$map": { "input": { "$range": [ 0, { "$size": "$date" } ] }, "as": "dateNum", "in": { "k": { "$concat": [ "date", { "$toString": { "$add": [ "$$dateNum", 1 ] } } ] }, "v": { "$arrayElemAt": [ "$date", "$$dateNum" ] } } } } } ] } } ])Pruébalo en mongoplayground.net .