簡體   English   中英

為 ArangoDB 創建測試數據

[英]Creating Test data for ArangoDB

您好,我想將隨機測試數據插入到名為 Transaction 的邊緣集合中,其中包含帶有隨機數據的字段 _id、Amount 和 TransferType。 我在下面編寫了以下代碼,但顯示語法錯誤。

FOR i IN 1..30000
  INSERT {
    _id: CONCAT('Transaction/', i),
    Amount:RAND(),
    Time:Rand(DATE_TIMESTAMP),
    i > 1000 || u.Type_of_Transfer == "NEFT" ? u.Type_of_Transfer == "IMPS"
  } INTO Transaction OPTIONS { ignoreErrors: true }

您的代碼有多個問題:

  • 當您創建一個新文檔時,您可以不指定_key鍵,Arango 將為您創建一個,或者您指定一個作為要使用的字符串。 _id作為鍵將被忽略。
  • RAND()產生一個介於 0 和 1 之間的隨機數,因此需要將其相乘才能使其進入您想要的范圍,如果您需要 integer 個值,則可能需要對其進行舍入。
  • DATE_TIMESTAMP是一個 function 並且您已將其作為參數提供給不需要參數的 RAND() function。 但是因為它生成了一個數字時間戳(自 1970-01-01 00:00 UTC 以來的毫秒數),實際上不需要它。 您唯一需要的是將隨機數生成轉移到一個有意義的范圍內(即:不是在 1970 年代)
  • i > 1000...行是我只能猜測它想要的東西。 這里缺少 JSON object 的密鑰。 您正在引用未在任何地方定義的u變量。 我看到了三元運算符表達式 ( cond? true_value: false_value ) 的前兩部分,但是:丟失了。 我最好的猜測是您想創建一個Type_of_transfer鍵,當i>1000時值為“NEFT”,當i<=1000時值為“IMPS”

所以,我重寫了你的 AQL 並測試了它

FOR i IN 1..30000
  INSERT {
    _key: TO_STRING(i),
    Amount: RAND()*1000,
    Time: ROUND(RAND()*100000000+1603031645000),
    Type_of_Transfer: i > 1000 ? "NEFT" :  "IMPS"
  } INTO Transaction OPTIONS { ignoreErrors: true }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM