सही तरीके से डेटा खींचने के लिए mongodb में golang

0

सवाल

मैं एक दस्तावेज़ में mongodb इस प्रारूप में,

{
  field1: string,
  field2: float64,
  field3: {...float64}
}

अंततः मैं हमेशा field1 & field2 और/से चुनने के field3 वस्तु.

मैं यह करने के लिए व्याख्या डेटा में एक संरचना की तरह,इस

type MongoScore struct {
    field1          string              `json:"field1"`
    field2          float64             `json:"field2"`
    field3          map[string]float64  `json:"field3"`
}

भाग मैं सोच रहा हूँ है कि क्या वहाँ है एक अधिक कुशल दृष्टिकोण खींचने के लिए इस डेटा के विभिन्न प्रकार के साथ.

go mongodb
2021-11-23 22:29:06
1

सबसे अच्छा जवाब

1

मान लें आप निम्न डेटा संरचना:

type Product struct {
    ID          primitive.ObjectID `bson:"_id"`
    Title       string             `bson:"product"`
    Description string             `bson:"description"`

    count int64 // <- this is not exported, so data won't be filled
}

में Golang, केवल निर्यात क्षेत्रों या तरीकों से सुलभ हैं बाहर यह पैकेज.

उपयोग संरचना क्षेत्र टैग बताने के लिए Mongodb डेटा लोड से संग्रह करने के लिए सीधे मिलान के क्षेत्रों. यहाँ mongodb से मेल खाता bson टैग के साथ क्षेत्रों में संग्रह.

func main() {
    ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)

    client, err = mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017/"))
    if err != nil {
        log.Fatalf("can't connect to database: %v\n", err)
    }
    
    objID, _ := primitive.ObjectIDFromHex("619dd79acad38082f9ce16af")
    
    db := client.Database("db")
    col := db.Collection("products")
    
    filter := bson.D{
        {"_id", objID},
    }
    
    dest := &Project{}
    
    err := col.FindOne(ctx, filter).Decode(dest)
    if err != nil {
        log.Fatalln(err)
    }

विधि Decode Unmarshals पाया डेटा में dest.

2021-11-24 06:10:53

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................