Как импортировать JSON в MongoDB Atlas и установить типы полей из функции Realm?

Я пытаюсь импортировать данные в формате JSON в Atlas как есть. В большинстве случаев это работает так, как ожидалось, но в некоторых случаях значения приходят как ceil и импортируются как Int вместо Double. Это предотвращает импорт этих записей с помощью синхронизации:

MongoEncodingError Error - Apr 03 7:14:04+03:00
Error:

Failed to apply MongoDB change event to sync history
Source:

Error syncing MongoDB write
Logs:
[
  "Change Event Type: insert",
  "Namespace: public-data.previous-day-prices",
  "Partition: P",
  "Document ID: JAZZ",
  "Detailed Error: could not convert MongoDB value to Realm payload for { table: PreviousDayPriceRealmModel, path: close }, value=168 : cannot transform int value for non-int property of type double"
]

Я попытался найти способ как-то устранить неоднозначность типа, но оба NumberDecimal и Decimal128 не определены в функциях Realm, поэтому похоже, что единственный способ - сначала добавить данные, а затем исправить тип поля, но это просто не выглядит правильно . Я что-то пропустил? Я новичок в MongoDB, Realm Sync и JS.


person Anton Plebanovich    schedule 03.04.2021    source источник


Ответы (1)


Ничего, я наконец-то нашел нужный тип BSON.Double

json.doubleField = BSON.Double(json.doubleField);
person Anton Plebanovich    schedule 03.04.2021