While you cannot prevent entries with duplicated data. You can query/aggregate the data in such a way that replicated data is ignored.
Below is some aggregation pipeline on the some_timeseries
Time Series collection
db.some_timeseries.aggregate([
// ...
{
$group: {
_id: {
username: '$metadata.username',
media_id: '$metadata.media_id',
timestamp: {
$dateTrunc: {
date: '$timestamp',
unit: 'day',
startOfWeek: 'monday',
binSize: 1,
},
},
},
// ...
},
},
///
])