Javascript 如何使用dexie更新indexeddb存储项

Javascript 如何使用dexie更新indexeddb存储项,javascript,indexeddb,dexie,Javascript,Indexeddb,Dexie,我已经索引了数据库表 “00014381104394” {id:'00014381104394',姓名:'A House Divided:第1季(DVD)',productimg:'http://i5.walmartimages.com/asr/99cfec5c-634e-4e26…4465.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffff“,发行单位:“每个”,数量:1,…} 1 "00016500590958" {id:“00016505

我已经索引了数据库表

“00014381104394”
{id:'00014381104394',姓名:'A House Divided:第1季(DVD)',productimg:'http://i5.walmartimages.com/asr/99cfec5c-634e-4e26…4465.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffff“,发行单位:“每个”,数量:1,…}
1   "00016500590958"    
{id:“0001650590958”,姓名:“一天一片男士50+迷你凝胶,男士复合维生素,80克拉”,产品名称:http://i5.walmartimages.com/asr/7d44d419-bd6f-4808…b7ea.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffffff“,发行单位:“每个”,数量:1,…}
2   "00022141041599"    
{id:“00022141041599”,名称:“Mepps-Dressed Aglia直列纺纱机,银色和灰色,1/4盎司”,产品名称:http://i5.walmartimages.com/asr/a0ce2579-300a-4536…0d63.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffffff“,发行单位:“每个”,数量:1,…}
3   "00038257767124"    
{id:“00038257767124”,名称:“Hanes男式Max座垫舒适上衣B&T圆领短袜6件套”,产品名称:http://i5.walmartimages.com/asr/f439dc53-c905-45bb…3436.jpeg?odnHeight=180&odnWidth=180&odnBg=ffffff“,发行单位:“每个”,数量:1,…}
4   "00041333002132"    
{id:“00041333002132”,名称:“Duracell Coppertop AAA电池,长效AAA电池,24组”,产品名称:http://i5.walmartimages.com/asr/09b2aa97-6655-4422…2259d.png?odnHeight=180&odnWidth=180&odnBg=ffffff“,发行单位:“每个”,数量:1,…}

如果您只想增加cartitems中给定newItemId的“quantity”属性,请执行以下操作:

db.transaction('rw', db.cartitems, () => {
  return db.cartitems.get(newItemId).then(item => {
    ++item.quantity;
    return db.cartitems.put(item);
  });
});
您也可以这样做(相当于上面剪下的部分):

见文件:


db.carttItems.get(newItemId)
返回您想要的项目时,为什么需要获取所有项目?@charlietfl我很确定我做得不对。我不知道如何直接更新特定itemid的属性。因此,先获取物品,然后获取商店中的所有物品,并使用升级数量创建一个新数组,然后我想获取特定物品,然后使用新数组对同一商店进行批量输入。确定。嗯,
result
应该是您要更新的单个项目(假设它存在),然后不是
bulkPut
只是
put()
。检查文档,我已经很久没看了,但我95%确定它只是一个项目的
put()
db.cartitems.where({id: newItemId}).modify(item => ++item.quantity);