Как найти и удалить дубликаты на основе нескольких полей и разных форматов меток времени? - PullRequest
0 голосов
/ 08 мая 2019

Я использую базу данных с открытым исходным кодом на основе 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!Хайко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...