74643


github.com/guregu/dynamoライブラリを利用してlocalのdynamodbにhashkeyで検索をかけようとしています。  
テーブルはIDをhash keyとしたusersテーブルです。(range key なし)

DBアクセスは以下のコードまで問題ありません。

[code]

    table := db.Table("users")
    
[/code]

以下のような構造体に値をそれぞれ代入し

[code]

    var user User
    var readResult User
    
    type User struct {
        ID       string 
        Email    string 
        Password string 
    }
    
[/code]

以下のようにクエリを発行したところエラーが発生しました。

[code]

    err = table.Get("ID",user.ID).One(&readResult)
    
[/code]

[code]

    ./main.go:140:6: cannot use table.Get("ID", user.ID).One(&readResult) (type error) as type Error in assignment
    
[/code]

以下DBのメタデータです

[code]

    {
      "AttributeDefinitions": [
        {
          "AttributeName": "ID",
          "AttributeType": "S"
        }
      ],
      "TableName": "users",
      "KeySchema": [
        {
          "AttributeName": "ID",
          "KeyType": "HASH"
        }
      ],
      "TableStatus": "ACTIVE",
      "CreationDateTime": "2021-03-12T22:50:39.758Z",
      "ProvisionedThroughput": {
        "LastIncreaseDateTime": "1970-01-01T00:00:00.000Z",
        "LastDecreaseDateTime": "1970-01-01T00:00:00.000Z",
        "NumberOfDecreasesToday": 0,
        "ReadCapacityUnits": 5,
        "WriteCapacityUnits": 5
      },
      "TableSizeBytes": 135,
      "ItemCount": 2,
      "TableArn": "arn:aws:dynamodb:ddblocal:000000000000:table/users"
    }
    
[/code]

原因がよくわからず困っております。 何卒宜しくお願い致します。


CC BY-SA 4.0
2021-03-13T06:22:21.227
74641
2021-03-13T06:57:15.510
2021-03-13T06:57:15.510
19110
44315
question
aws go amazon-dynamodb
Go言語にてguregu/dynamodbのクエリがエラーになる: (type error) as type Error in assignment

[code]

    err = table.Get("ID",user.ID).One(&readResult)
    
[/code]

上記の代入文が `:=` ではなく `=` になっているのが気になります。この行より上の方で変数 `err` に対して `Error`
型の値を代入していたり、変数 `err` を `Error` 型の変数として宣言したりしていませんか？ ここの `One` の返り値は `error`
型なので、代入時の型エラーが起こっていそうです。


CC BY-SA 4.0
2021-03-13T06:55:55.727
74643
2021-03-13T06:55:55.727
19110
74641
answer