Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

284
Visualizações
Python mongoengine - OBTENER ID de la última entrada

Tengo un escenario en el que necesito crear un clon de algunos productos en mi mongoDB. Yo uso el siguiente código

 for single_product in survey_products: cloned_product = without_keys(single_product, {'_id'}) cloned_product_doc = Product(**cloned_product) cloned_product_doc.save() print(cloned_product_doc.id) print(cloned_product_doc._id)

Esto crea los registros correctamente, lo cual está bien, pero en ambas funciones de print , obtengo None aunque llamo a cloned_product_doc.save() antes de acceder a las IDs .

¿Cómo puedo obtener el ID de las nuevas entradas?

EDITADO

Aquí está la definición del modelo.

 class Product(Document): # model _id = ObjectIdField() photo = StringField() name = StringField() price = FloatField() currency = StringField() class Meta: db_table = 'product'
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Edite la definición del modelo como se muestra a continuación, asegúrese de definir el ObjectId como predeterminado

 ......................... from mongoengine import * from bson import ObjectId #import objectID to use as default class Product(Document): # model _id = ObjectIdField(default=ObjectId) # mention default as ObjectId photo = StringField() name = StringField() price = FloatField() currency = StringField() class Meta: db_table = 'product'
over 4 years ago · Santiago Trujillo Relatório

0

Bajo uso normal, Mongoengine agrega la identificación a la instancia cuando llama a .save().

 from mongoengine import * connect() class MyDoc(Document): # Mongoengine adds an id = ObjectIdField if no 'id' is provided s = StringField() doc = MyDoc(s='garbage').save() print(doc.id) # eg 600df8c3d87af06b92725f87

Sugeriría inspeccionar lo que hay en su cloned_product . Tal vez haya una clave 'id' restante o algo que interfiere con el comportamiento predeterminado

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda