MongoDB使用GraphQL查找和修改

时间:2018-10-19 15:47:00

标签: mongodb graphql

我正在研究GraphQL突变,在这里需要帮助。我的文档看起来像

{
    "_id" : ObjectId("5bc02db357146d0c385d4988"),
    "item_type" : "CategoryMapping",
    "id" : null,
    "CategoryGroupName" : "Mystries & Thriller",
    "CustomCategory" : [ 
        {
            "name" : "Private Investigator",
            "MappedBisacs" : [ 
                "investigator", 
                "Privately owned", 
                "Secret"
            ]
        },
{
            "name" : "Crime Investigator",
            "MappedBisacs" : [ 
                "crime investigator", 
                "crime thriller"
            ]
        }
    ]
}

UI

  • 允许用户通过复选框列表更新MappedBisacs。因此,用户可以添加/更新或删除bisac列表。

问题-客户端发送GraphQL查询时,如下所示;

mutation {
  CategoryMapping_add(input: {CategoryGroupName: "Mystries & Thriller", CustomCategory: [{name: "Crime Investigator", MappedBisacs: ["investigator", "dafdfdaf", "dafsdf"]}]}) {
    clientMutationId
  }
}

我需要找到特定的自定义类别并更新其bisac数组。

1 个答案:

答案 0 :(得分:0)

我不确定是否能做到这一点,但这是对MongoDb的怀疑,而不是对GraphQL本身的怀疑。首先,您必须找到所需的文档(我将使用文档的id而不是CategoryGroupName),然后可以通过几种方式更新此数组。例如,找到文档后,您可以简单地访问数组内容并散布到一个新的数组中,从而添加来自您的突变的新数据,然后使用update方法保存该对象。 (如果您只是想添加新数据而不删除任何数据) 因此,要视情况而定。

检查:https://docs.mongodb.com/manual/reference/operator/update-array/

希望有帮助! :)