MongoDB 2.0.42:推送到嵌套数组?

时间:2015-09-15 02:34:05

标签: arrays json node.js mongodb

大家好,我现在已经坚持这个问题一段时间了。 所以我在MongoDB数据库中有一个看起来像这样的JSON对象:

{
  "gameID" : 900000001
  "characters" : [
    {
      "characterID" : 1
      "inventory" : [
        "item1"
      ]
    }
  ]
}

如何使用此位JSON添加到库存数组中?

{
  "gameID" : 900000001
  "characterID" : 1
  "inventory" : [
    "item2"
    "item3"
  ]
}

我尝试过使用多个不同的findOneAndUpdate操作和updateOne操作,但我似乎无法访问角色中的库存数组。我似乎总是推动" item2"和" item3"进入不正确的地方我已经做了很多关于此的研究,发现了一些有趣的读物。

push into deeply nested array 这回答了这个问题暗示MongoDB 2.0.42可能无法实现。如果我无法做到这一点,那么有人能指出我的下一个最佳方法吗?

另外,为什么我不能在npm中使用最新版本的MongoDB? Npm似乎只允许安装2.0.42版本。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果我没弄错的话,你使用mongodb driver的最新版本(2.0.42),而不是mongodb本身。如果要检查数据库本身的版本,请在命令行中键入:

.add {
    background-image: url('http://icons.iconarchive.com/icons/awicons/vista-artistic/16/add-icon.png') !important; width: 16px; height: 16px; display: block;
}

.edit {
    background-image: url('http://icons.iconarchive.com/icons/designcontest/outline/16/Pencil-icon.png') !important; width: 16px; height: 16px; display: block;
}

.delete {
    background-image: url('http://icons.iconarchive.com/icons/oxygen-icons.org/oxygen/16/Actions-edit-delete-icon.png') !important; width: 16px; height: 16px; display: block;
}

我会使用positional operator和$ each运算符,它允许您将多个值附加到列表中。

mongod --version