Я использую базу данных с открытым исходным кодом на основе mongodb для отслеживания уровней кровяного сахара и управления ими, и мне приходится удалять дубликаты с разными временными метками.
Если я ввожу еду («коррекцию углеводов») с телефона моего отца, другой Клиент с маминого телефона, кажется, клонирует эту запись, но использует другой формат отметки времени (см. Изображение).Поэтому у меня есть дубликаты записей в таблице, но не точные копии.
Пытаясь ознакомиться с nosql-запросами, я обнаружил, что для выявления дубликатов:
db.treatments.aggregate([
{ "$match": { "created_at": { $exists: 1 } } },
//{$match: {enteredBy: "Spike"}},
{
"$group": {
"_id": { "created_at": "created_at", "carbs": "$carbs", "eventType": "eventType", "notes": "notes" },
"uniqueIds": { "$addToSet": "$_id" },
"count": { "$sum": 1 },
"docs": { "$push": "$_id" }
}
},
{ "$match": { "count": { "$gt": 1 } } },
{ $sort: { _id: -1 } }
])
Но это не такраспознавать различные метки времени как одну группу.
Кроме того, некоторые другие записи имеют третью форму метки времени (светло-синего цвета).
Мне нужно удалить все дубликаты.Может кто-нибудь, пожалуйста, укажите мне, как правильно работать с этой проблемой?
Большое спасибо в Advance!Хайко