JSON 使用 LoDash 和 ParseDB 的 CRUD 操作

JSON CRUD operations with LoDash and ParseDB

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

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

每个 {objects} 都包含许多其他对象,其中一些与 objectID 嵌套在一起。我想使用 GlobalID 和 objectID 删除所选数组内的给定对象。到目前为止,我已经尝试了所有我能想到的使用 Lodash 和 Parse.Query 的组合。我想我已经能够使用 GlobalID 在列级别成功 select 对象,但我无法进入数组和 select 目标对象以使用 objectID 删除。你怎么做到这一点?我相信有不止一种方法。我会采纳你的任何建议。

我对 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();
});