Algolia添加到嵌套数组

时间:2016-05-18 20:38:25

标签: c# arrays algolia

 {"EmailAddress": "matthew.harris@patheer.com",  
    "CompanyName": "Patheer",
    "Image": "user/img/matthew.harrispatheer.commatthew2.jpg",
    "FirstName": "Matthew",
    "LastName": "Harris",
    "JobFunction": "Information Technology",
    "PatheerJobsID": "B5PL0YqCeEe7np2j50h5Q",
    "JobTitle": "Database Administrator",
    "Aspirations": [
    {
      "PatheerJobsID": "685a215b4b0f418dbbf9285b28377c21",
      "JobTitle": "Data Scientist",
      "JobFunction": "Information Technology"
    }],
    "Skills": [
    {
      "SkillID": "2vRdiqCOE2XBDS3nsS1LA",
      "SkillName": "SQL",
      "SkillRating": 3
    },
    {
      "SkillID": "WEPMtg3JkU2xlpmgmvkYQ",
      "SkillName": "Accounting",
      "SkillRating": 4
    },
    {
      "SkillID": "d9c514035a554a5d8d99c411e43b683d",
      "SkillName": "Leadership",
      "SkillRating": 4
    },
    {
      "SkillID": "p2Aljae1EK3VDpx25dTKw",
      "SkillName": "MongoDB",
      "SkillRating": 3
    },
    {
      "SkillID": "c8fc21d83ea94842a8ae416df9317305",
      "SkillName": "Business Development",
      "SkillRating": 4
    },
    {
      "SkillID": "8f0a439029784e4e827e343e7f9034b2",
      "SkillName": "GAAP",
      "SkillRating": 3
    }],
    "objectID": "0157be4b-3426-4854-95b5-88e39cbc2403"
}

所以上面是我的JSON,我正在尝试添加到Skills数组中。这是我的代码。这有什么问题?我正在使用C#.....以下是我的功能#34;尝试"添加到数组但它不起作用。根据Algolia网站的主要功能是" AddUnique",这里是链接,但我有点失落https://www.algolia.com/doc/csharp#update-an-existing-object-in-the-index

string algoliakey = System.Configuration.ConfigurationManager.AppSettings["AlgoliaKey"];
    string algoliasecret = System.Configuration.ConfigurationManager.AppSettings["AlgoliaSecret"];
    AlgoliaClient client = new AlgoliaClient(algoliakey,algoliasecret);
    var index = client.InitIndex("People");
    string objectID = personid;

    StringBuilder updatealgolia = new StringBuilder();

    updatealgolia.Append("{\"Skills\": {\"SkillID\":\"" + skillid + "\", \"SkillName\":\"" + skillname + "\", \"SkillRating\":5, \"_operation\": \"AddUnique\"}, \"objectID\":\"" + objectID + "\"}");

    index.PartialUpdateObject(JObject.Parse(updatealgolia.ToString()), false);

1 个答案:

答案 0 :(得分:3)

是的,它总是可行的。

但是,您没有使用正确的语法。您要添加的技能元素必须位于value字段中,如C# client documentation所示。

在您的情况下,您只需要重新格式化您的JSON:

{
  "objectID": "<OBJECT_ID>",
  "Skills": {
    "_operation": "AddUnique",
    "value": {
      "SkillID": "<SKILL_ID>",
      "SkillName": "<SKILL_NAME>",
      "SkillRating": <SKILL_RATING>
    }
  }
}