2016-03-31 36 views
1

我想從.javascript/ajax內發佈.json文件作爲單個文檔到ArangoDB集合。如何使用Ajax將.json文件發佈到ArangoDB

我可以使用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

我認爲你應該使用/ _api /進口替代/ _api /文件:

HTTP Interface for Bulk Imports

這裏是一個小的工作示例(不授權):

$.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); 
      } 
     } 
     } 
    }); 
    } 

api支持a幾個輸入格式:

1)單個文檔

{name: "Jonny"} 

2.)多個文檔(每行中的一個DOC)

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

3.)在JSON陣列中的多個文件

[{name: "Jonny"}, {name: "Adam"}, {name: "Peter"}] 
+0

謝謝,從文檔api切換到導入api使所有的區別,我的代碼現在工作。 Danke,Grazie。 – Frank

+0

@Frank你可以把答案標記爲接受嗎? – dothebart

+0

對於延遲接受標記感到抱歉,這是我的第一篇文章,我不得不找到接受按鈕。再次感謝 – Frank

相關問題