MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mongodb-go-driver/bson struct do kodowania bson.Document

Niestety obecnie nie jest to obsługiwane.

Możesz utworzyć funkcję pomocniczą, która „konwertuje” wartość struktury na bson.Dokument tak:

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

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

Następnie można go użyć w następujący sposób:

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)),
)

Mam nadzieję, że ElementConstructor.Interface() poprawi się w przyszłości i umożliwi przekazywanie wartości struktur lub wskaźników bezpośrednio do wartości struktur.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nie znaleziono klasy „MongoDB\Client”, zainstalowane rozszerzenie mongodb

  2. Przechowywanie małych (poniżej 1 MB) plików za pomocą MongoDB w NodeJS BEZ GridFS

  3. Skąd Mocha wie, który plik załadować jako pierwszy w zestawie testowym?

  4. Jak mogę skonfigurować MongoDB na serwerze Node.js przy użyciu node-mongodb-native w środowisku EC2?

  5. Meteor — Dlaczego powinienem używać this.userId zamiast Meteor.userId(), gdy tylko jest to możliwe?