【问题标题】:Lowdb - push data into an array inside another arrayLowdb - 将数据推送到另一个数组内的数组中
【发布时间】:2019-01-28 18:33:42
【问题描述】:

我基本上是想为每个用户做一个清单,为此我使用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"},
     ]
    }
  ]
}

我的想法是这样的

//get 'users', find the id and then write inside the inventory array (which i dont know how to)
db.get('users')
.find({ id: 'id' })

【问题讨论】:

    标签: node.js discord


    【解决方案1】:

    两个快速回答:

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

    你可以像这样分配:object.assign({inventory:[newInventory]}).write();

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

    【讨论】:

      【解决方案2】:

      测试了这段代码sn-p,它运行良好。

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

      【讨论】:

      • 谢谢!!抱歉这么晚才重播
      • 没问题!感谢您的跟进:)
      【解决方案3】:

      应该可以直接使用push

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

      【讨论】:

        猜你喜欢
        • 2017-06-22
        • 1970-01-01
        • 2020-02-01
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 2018-07-07
        • 2017-03-02
        • 1970-01-01
        相关资源
        最近更新 更多