'How do we create timeseries collections with mongodb golang driver?

I am trying to create timeseries collections => https://www.mongodb.com/developer/how-to/new-time-series-collections/#expireafterseconds with the following function As you can see below i have tried different iterations to pass options to the CreateCollection() but nothing works. Searched for hours for an example of this and could not find any, and one would think will be easy to setup based on current documentation but hours later and here to get help

func CollectionsTimeSeries(name string) {

    ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)

    // options := {
    //  "TimeSeriesOptions": {
    //      "TimeField": "time_stamp",
    //      "MetaField": "stock",
    //      "Granularity": "minutes",
    //  },
    //  "ExpireAfterSeconds": 2592000,      
    // }

    // options := { 
    //  timeseries: {
    //      timeField: "time_stamp",
    //      metaField: "stock",
    //      granularity: "minutes",
    //  },
    //  expireAfterSeconds: 2592000         
    // }

    options := { 
    "timeseries": {
        "timeField": "time_stamp",
        "metaField": "stock",
        "granularity": "minutes",
    },
    "expireAfterSeconds": 2592000       
    }

    // database.GetConnection.CreateCollection(ctx, name, { 
    //  timeseries: {
    //      timeField: "time_stamp",
    //      metaField: "stock",
    //      granularity: "minutes",
    //  },
    //  expireAfterSeconds: 2592000         
    // })


    database.GetConnection.CreateCollection(ctx, name, options)
}

Get the following errors

syntax error: unexpected {, expecting expression
syntax error: unexpected }, expecting comma or )


Solution 1:[1]

Use the options package to create an options instance containing time series options:

opt:=options.CreateCollection().
   SetTimeseriesOptions(options.TimeSeries().
        SetGranularity("...").
        SetMetaField("...").
        SetTimeField("..."))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1