我试图更新产品的库存状态,在MongoDB Shell中它的工作完美,但是当我在Pyhton中使用它时,它给我一个错误的错误,我不明白为什么它给了我。
我的Python代码是她的
db['product'].find({
'store_uuid': store_uuid,
'uuid': str(curr_content['Product'])
}).forEach(bson.Code("""
function (product) {
product.stock.in_store.forEach(function (store_stock) {
if (store_stock.Store == {store}) {
store_stock.New = {new};
store_stock.Used = {used};
}
});
db.product.save(product);
}
""").format(new=int(curr_content['New']), used=int(curr_content['Used']), store=str(curr_content['Store']))
)
我得到的问题是
AttributeError:'光标'对象没有属性' forEach'
我真的不知道它为什么会出现,我的MongoDB Shell代码在演示中看起来像这样,并且它的工作性能很好。
db.getCollection('product').find({
'store_uuid': 'c30525de-8e51-4e5e-aa2c-eae0e21c8cec',
'uuid': '788091af-2af9-4cb3-b898-1cec0c02ffcb'
}).forEach(function (doc) {
doc.stock.in_store.forEach(function (event) {
if (event.Store === 'f20c425e-03cb-4560-a0dd-68ee2bacf783') {
event.New=10;
event.Used=10;
}
});
db.collection.save(doc);
});
我想要的是直接作为MongoDB中的函数运行而不是在Python中运行。希望sombody可以帮助我解决这个问题。