python update mongodb find()。forEach给出错误

时间:2017-06-02 08:17:48

标签: python mongodb

我试图更新产品的库存状态,在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可以帮助我解决这个问题。

0 个答案:

没有答案