MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb-go-driver/bson структура към bson. Кодиране на документа

За съжаление в момента това не се поддържа.

Можете да създадете помощна функция, която "преобразува" стойност на структура в bson.Document като това:

func toDoc(v interface{}) (doc *bson.Document, err error) {
    data, err := bson.Marshal(v)
    if err != nil {
        return
    }

    err = bson.Unmarshal(data, &doc)
    return
}

След това може да се използва по следния начин:

partialUpdate := &NoteUpdate{
    Title: "Some new title",
}

doc, err := toDoc(partialUpdate)
// check error

res := c.FindOneAndUpdate(
    context.Background(),
    bson.NewDocument(bson.EC.String("_id", "some-note-id")),
    bson.NewDocument(bson.EC.SubDocument("$set", doc)),
)

Надяваме се, че ElementConstructor.Interface() ще се подобри в бъдеще и ще позволи директно предаване на структурни стойности или указатели към структурни стойности.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вмъкване на PHP обект в MONGO DB

  2. Mongodb не може да намери обект с твърде дълъг _id

  3. Mongoose findOneAndUpdate и upsert не връщат грешки, няма засегнати документи

  4. MongoDB $toString

  5. Потопете Kafka Stream към MongoDB с помощта на PySpark Structured Streaming