Разрешить одинаковые даты для разных имен в коллекции MongoDB? - PullRequest
1 голос
/ 12 июля 2020

У меня один MongoDB do c:

{
    "asset": "BANANA",
    "timeframe": "5m",
    "date": "2020-07-11T03:55:00.000Z"
}

Дата для меня критична. Может быть только одна запись даты на asset с той же датой. Итак, на следующем этапе приходят мои fre sh данные, и перед тем, как они попадают в базу данных, они выглядят так:

{
    "asset": "BANANA",
    "timeframe": "5m",
    "date": "2020-07-11T03:55:00.000Z"
}
{
    "asset": "BANANA",
    "timeframe": "5m",
    "date": "2020-07-11T04:00:00.000Z"
}

Итак, как вы можете видеть, теперь у меня есть две записи на пути для отправки в базу данных MongoDB. На этом этапе я провожу тест, чтобы увидеть, какие из них уже находятся в базе данных, а какие новые.

Я использую следующий запрос model.exists({date: "2020-07-11T03:55:00.000Z"})

Это удаляет "2020-07-11T03:55:00.000Z" из входящих данных и продолжает сохранять только тот, который является новым, тот, который имеет подпись "date": "2020-07-11T04:00:00.000Z".

Итак, моя база данных теперь выглядит так:

{
    "asset": "BANANA",
    "timeframe": "5m",
    "date": "2020-07-11T03:55:00.000Z"
}

{
    "asset": "BANANA",
    "timeframe": "5m",
    "date": "2020-07-11T04:00:00.000Z"
}

Однако при следующих полученных данных я получаю в ответ следующее:

{
    "asset": "APPLE",
    "timeframe": "5m",
    "date": "2020-07-11T03:55:00.000Z"
}

Когда я выполняю свой поиск, model.exists({date: "2020-07-11T03:55:00.000Z"}), эти fre sh данные помечаются как уже существующие, несмотря на то, что актив - новый "asset" со значением "APPLE" внутри.

Есть ли способ вернуть exists:true для: "asset": "BANANA", "date": "2020-07-11T03:55:00.000Z", но exists:false для "asset": "APPLE", "date": "2020-07-11T03:55:00.000Z"?

Остановка записей с одинаковой датой в одних и тех же активах, но разрешение записей с одинаковыми данными для разных активов.

Я также позабочусь о том, чтобы моя схема MongoDB НЕ содержала {data: unique}.

Решение, о котором я подумал, вероятно, создает третий идентификатор UUID на основе data и asset значений, но это почему-то кажется слишком сложным?

...