Mongoengine更新嵌入式文档

时间:2013-03-28 02:30:13

标签: python mongoengine

我有以下代码,我正在尝试更新列表字段中的嵌入式文档。

store = store_service.get_store_from_product_id(product_id)
got_product, idx = get_product_from_store(store, product_id)

product = Product()
product.pid = got_product.pid
product.display_name = display_name
product.description = description
product.rank = rank
product.price = price
product.categories = categories
product.properties = properties

store.catalog.products[idx] = product

print store.catalog.products[idx].__unicode__()

store.save()

当我打印出我的产品时,它具有正确的值,但是当我保存它时,它不会持续存在。没有错误被抛出。有什么想法,我可能做错了吗?

1 个答案:

答案 0 :(得分:1)

store.catalog.products[idx] = product可以应用于DictField()。对于ListField()。你可以尝试:

store.catalog.products = [product]

store.catalog.products.append(product)

你需要在对象上调用save:

store.save()

atomic updates有可能在其他情况下有所帮助:

Store.objects(id='123400000').update_one(push__catalog__products=product)
相关问题