如何使用Ajax将.json文件发布到ArangoDB

时间:2016-03-31 04:46:26

标签: javascript jquery json ajax arangodb

我试图将一个.json文件作为单个文档发布到arangoDB集合中,从javascript / ajax中发布。

我可以使用curl发布(到ArangoDB).json文件,这样就行了 我可以使用AJAX发布(到ArangoDB)简单的{key:value}对,这样就行了,但是将两者结合起来似乎是一个过分的桥梁。我花了几个晚上试图做到这一点,所以任何帮助都将非常感激。提前谢谢。

我的javascript代码看起来像这样

var database_URL = prompt("Please enter your  URL", "http://xxx..xxx.xxxx.:8529/_db/collection_name/_api/document?collection=PA_Users&createCollection=false");

    var fd = new FormData();
    var selectedFile = document.getElementById('files').files[0];
    console.log(selectedFile.name);// this works
    fd.append(selectedFile.name,selectedFile);

var settings = {
      url : database_URL,
      type : "POST",
      headers: {
        'Authorization': "Basic " + btoa(username1 + ":" + passwrd1)
      },
      data: fd,
      processData: false,
      success: function(data) {
      // display feedback to user
      alert("booyah");
    },
      error: function(data) {
          // display feedback to user
          alert("boo hoo");
        }
  };

  $.ajax(settings);

1 个答案:

答案 0 :(得分:1)

我认为您应该使用/ _api / import而不是/ _api / document:

HTTP Interface for Bulk Imports

这是一个小工作示例(未经授权):

$reviews->select('*', '(up_vote - down_vote) AS profit')
    ->orderBy('profit','DESC')->get();

api支持几种输入格式:

1。)单个文件

  $.ajax({
      type: "POST",
      url:
        '/_api/import?type=auto&collection=' + 
                encodeURIComponent(yourCollectionID) +
        '&createCollection=false',
      data: file,
      processData: false,
      contentType: 'json',
      dataType: 'json',
      complete: function(xhr) {
        if (xhr.readyState === 4 && xhr.status === 201) {
          callback(false);
        } else {
          try {
            var data = JSON.parse(xhr.responseText);
            if (data.errors > 0) {
              // error
            }
            else {
              // success 
            }
          }
          catch (err) {
            console.log(err);
          }
        }
      }
    });
  }

2。)多个文件(每行一个文件)

{name: "Jonny"}

3.。)JSON数组中的多个文档

{name: "Jonny"}
{name: "Adam"}
{name: "Peter"}