Как использовать Sqoop для объединения нескольких таблиц MySQL в одну таблицу Hive

Если вы хотите вручную изменить значение «_id», вы можете сделать это, изменив значение _id в возвращаемом документе. Вы можете сделать это аналогично тому, как вы предложили в своем вопросе. Однако я не думаю, что этот подход рекомендуется.

curs = db.admin_collection.find().sort( [("_id", -1)] ).limit(1)
for document in curs:
    document['_id'] = str(int(document['_id']) + 1)
    collection.insert(document)

Как правило, не рекомендуется вручную создавать свои собственные идентификаторы. Эти значения должны быть уникальными, и нет гарантии, что str (int (document ['_ id]) + 1) всегда будет уникальным.

Вместо этого, если вы хотите дублировать документ, вы можете удалить '_id' и вставить документ.

curs = db.admin_collection.find().sort( [("_id", -1)] ).limit(1)
for document in curs:
    document.pop('_id',None)
    collection.insert(document)

Это вставляет документ и позволяет mongo генерировать уникальный идентификатор.

0
задан Ke Lu 13 July 2018 в 11:52
поделиться