使用LoDash和ParseDB的JSON CRUD操作

时间:2015-02-04 03:32:15

标签: javascript json parse-platform lodash

我在Lodash和Express / Parse后端使用Javascript。给定一个包含3列的集合,其中两列具有唯一的字符串,其中一列包含以下形式的对象:

{
  "Array1": [
    {object},
    {object}
  ],
  "Array2": [
    {object},
    {object},
    {object}
  ],
  "GlobalID": "xxxxx"
}

每个{objects}都包含许多其他对象,其中一些对象与objectID一起嵌套。使用GlobalID和objectID我想删除所选数组中的给定对象。到目前为止,我已经尝试了使用Lodash和Parse.Query的组合所能想到的一切。我想我已经能够使用GlobalID成功地在列级别选择对象,但是我无法访问数组并使用objectID选择要删除的目标对象。你怎么做到这一点?我确定不止一种方式。我会接受你的任何建议。

1 个答案:

答案 0 :(得分:2)

我对lodash一无所知,但问题是没有它的问题。

假设您拥有外部对象的GlobalID,并且它是myGlobalID。并且说您知道要从“Array2”中删除,并说要删除的内部对象的ID是innerObjectId。然后...

...这会查找外部对象:

var query = new Parse.Query("OuterObject");
query.equalTo("GlobalID", myGlobalID)
query.first();   // assumes unique global id, otherwise use find()

...因为问题暗示数组是指向其他对象的指针,所以你需要创建一个适合删除的数组:

var pointer = new InnerObject();
pointer.id = innerObjectId;

...现在我们已准备好删除:

var query = new Parse.Query("OuterObject");
query.equalTo("GlobalID", myGlobalID)
query.first().then(function(object) {
    var pointer = new InnerObject();
    pointer.id = innerObjectId;
    object.remove("Array2", pointer);
    return object.save();
});