Lowdb-将数据推入另一个数组中的数组

时间:2018-08-22 13:18:56

标签: node.js discord

我基本上是想为每个用户做一个清单,为此我用label来帮助我处理数据。 我当前的结构是这样的:

Lowdb

我的想法就像

 {
  "users": [
    {
    "id": "450453034724491266",
    "tag": "Briggs#4992",
    "inventory": [
      {"itemID": "1320488779", "rarity": "rare"},
      {"itemID": "1674364779", "rarity": "common"},
    ]
  },
    {
     "id": "272659147974115328",
     "tag": "Zytekaron#0572",
     "inventory": [
      {"itemID": "1320488779", "rarity": "rare"},
      {"itemID": "1674364779", "rarity": "common"},
     ]
    }
  ]
}

3 个答案:

答案 0 :(得分:0)

两个快速答案:

通过ID获取对象。修改->替换-保存;

您可以执行如下分配:object.assign({inventory:[newInventory]})。write();

其中object是您刚从数据库获得的用户。

答案 1 :(得分:0)

测试了此代码段,它运行正常。

// Get your user
let inventory = db
    .get('users')
    .find({ id: '272659147974115328' })
    .get('inventory')
    .value();

// Do something to your user's inventory
inventory.push({ itemID: '9999999', rarity: 'common' });

// Update the user with the modified inventory

db.get('users')
    .find({ id: '272659147974115328' })
    .assign({ inventory })
    .write();

答案 2 :(得分:0)

应该可以直接使用 push

db
.get('users')
.find({ id: '272659147974115328' })
.get('inventory')
.push({ itemID: '9999999', rarity: 'common' })
.write();