Вставка структуры в mongodb на Голанге - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь вставить структуру в базу данных Монго.

type SecretsStruct struct {
   UserID string `bson:"userid" json:"userid"`
   secretOne string `bson:"secret_one" json:secret_one`
   secretTwo string `bson:"secret_two" json:secret_two`
   secretThree string `bson:"secret_three" json:secret_three`
 }

func (c *SecretsStruct) SetSecrets(userId string, encryptedKeys   
      [][]byte){
   c.UserID = userId
   c.secretOne = hex.EncodeToString(encryptedKeys[0])
   c.secretTwo = hex.EncodeToString(encryptedKeys[1])
   c.secretThree = hex.EncodeToString(encryptedKeys[2])
   log.Printf("This is the c %s", c)
 }

 g := SecretsStruct{}
 g.SetSecrets(userStruct.UserID, encryptedKeys)
 err = secretCollection.Insert(g)
 if err != nil {
      panic(err)
  }

Я попытался вставить байтовые массивы, соответствующие секретам, но безрезультатно. Результат, который заполняется до соответствующей операции вставки:

{'_id': ObjectId('5b80117c118c660aaa0c87c2'),
'userid': 'eb19d220-ef13-43aa-8a7f-f78637718000'}

С другой стороны, если я пытаюсь вставить те же данные с картой, но без структуры.

secretCollection.Insert(bson.M{"userid": userStruct.UserID,
    "secret_one": encryptedKeys[0],
    "secret_two": encryptedKeys[1],
    "secret_three": encryptedKeys[2]})

Операция вставки выполнена успешно.

1 Ответ

0 голосов
/ 24 августа 2018

Вы должны экспортировать свои поля структуры, чтобы другой пакет (в данном случае mgo) мог получить к ним доступ:

type SecretsStruct struct {
    UserID string `bson:"userid" json:"userid"`
    SecretOne string `bson:"secret_one" json:secret_one`
    SecretTwo string `bson:"secret_two" json:secret_two`
    SecretThree string `bson:"secret_three" json:secret_three`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...