如何更新子阵列?

时间:2016-06-30 11:37:28

标签: express feathersjs

我知道如何在Feathers中创建内容(systemService.create(category);),但我如何在子集合中创建内容?

我想将category插入systemService[0].productCategories,但还没有想出如何做到这一点。这是我服务的截图。

enter image description here

有没有人有关于我应该如何进行的任何提示?

编辑:找到几乎的解决方案。

systemService.find((error, categories) => {
  const $id = categories[0]._id;

  systemService.update($id, {
    "$set": {
      "productCategories": [
        newCategory
      ]
    }
  });

  console.log(categories);
});

但是,它只是替换productCategories中已有的内容,而不是添加到patch中。我已经尝试了{{1}},但没有发生任何事情(所以我可能做错了,或者不是答案)。

1 个答案:

答案 0 :(得分:1)

使用Mongoose或Mongodb时,$push运算符应该满足您的需求:

systemService.find((error, categories) => {
  const $id = categories[0]._id;

  systemService.update($id, {
    "$push": {
      "productCategories": [
        newCategory
      ]
    }
  });

  console.log(categories);
});