Конвертировать тип поля MongoDB при импорте
У меня более 5 миллионов JSON-объектов, хранящихся в сотнях текстовых файлов, которые я собираюсь импортировать в базу данных Mongo. Я создал пакетный файл Windows, чтобы перебирать каталоги, в которых хранятся файлы, и импортировать их с помощью mongoimport. Это работает, как и ожидалось, но одно из полей в объекте JSON является значением с плавающей запятой, которое по какой-то причине было сохранено в виде строки.
Есть ли способ конвертировать его тип поля при импорте данных? Я попытался преобразовать поле в число после этого, но это очень медленно.
{
"id": 1234,
"user": "user1",
"ip": "127.0.0.1",
"time": "111111111111"
}
1 ответ
Вы можете сделать что-то вроде этого, если хотите преобразовать строку в int дляfield
в библиотеках Python и pymongo:
client = MongoClient("some_url")
db = client["db"]
collection = db["name_of_collection"]
path_to_data = 'data.json'
with open(path_data) as file:
file_data = json.load(file)
if isinstance(file_data, list):
for document in file_data:
document["field"] = int(document["field"])
collection.insert_many(file_data)