3

次のコードがあり、リストフィールドに埋め込まれたドキュメントを更新しようとしています。

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()

製品を印刷すると正しい値が表示されますが、保存すると値が保持されません。スローされるエラーはありません。私が間違っている可能性があることを考えていますか?

4

1 に答える 1

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)
于 2013-06-06T10:57:05.820 に答える