Lowdb - 将数据推送到另一个数组内的数组中

Posted

技术标签:

【中文标题】Lowdb - 将数据推送到另一个数组内的数组中【英文标题】:Lowdb - push data into an array inside another array 【发布时间】: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' )

【问题讨论】:

【参考方案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();

【讨论】:

以上是关于Lowdb - 将数据推送到另一个数组内的数组中的主要内容,如果未能解决你的问题,请参考以下文章

将值推送到猫鼬模式中对象内的数组

如何在 PHP 中将数组值推送到另一个数组中? [复制]

拉取数组对象值然后推送到另一个数组

如何避免在对象内部创建对象并使用猫鼬将元素直接推送到快速数组中?

如何按键过滤数组并使用javascript将值推送到另一个数组

Javascript/jQuery - 将项目推送到数组并从数组中删除