Menggunakan perpustakaan golang firestore 1.8, saya cuba menggunakan fungsi count() baharu firestore yang dilancarkan oleh Google pada musim luruh lalu. Dokumen itu nampaknya masih belum mempunyai contoh, bukan yang saya temui, tetapi saya menyusun beberapa kod yang agak berfungsi yang membuatkan saya melakukan segala-galanya kecuali sebenarnya menjana integer. Nilai "result[usercountalias]" di bahagian bawah coretan ialah nilai yang saya berminat untuk menukar kepada integer, tetapi saya tidak pasti caranya. Sudah tentu, saya boleh menjadikannya rentetan, membelah pada kolon, dan kemudian menghuraikannya, tetapi itu akan kelihatan hodoh.
Sebarang petua akan sangat dihargai!
Terima kasih banyak-banyak.
func (s UserService) Count(labID string) (int64, error) { if s.DB == nil { return -1, customerrors.ErrDatabaseMissing } query := s.DB. Collection(CollectionUsers). Where("lab_id", "==", labID) userCountAlias := "userCount" ag := query.NewAggregationQuery() //result is a firestore.AggregationResult, which seems to consist of just a //map[string]interface{} result, err := ag.WithCount(userCountAlias).Get(s.Ctx) if err != nil { return -1, err } v := result[userCountAlias]//How do I cast this to an integer? fmt.Printf("Type = %v", v) //Prints "Type = integer_value:379" return -1, nil }
cuba jenis fmt.printf("type = %t", v)
找出 v
.
v
最有可能是 firestorepb.value。请注意,这在 1.8 中尚不可用。尝试将 cloud.google.com/go/firestore
Naik taraf kepada versi terkini (kini 1.9).
package main import ( "fmt" "cloud.google.com/go/firestore/apiv1/firestorepb" ) func main() { var v interface{} = &firestorepb.Value{ ValueType: &firestorepb.Value_IntegerValue{ IntegerValue: 379, }, } fmt.Printf("%T\n", v) // *firestorepb.Value fmt.Printf("%v\n", v) // integer_value:379 if v, ok := v.(*firestorepb.Value); ok { fmt.Printf("%v\n", v.GetIntegerValue()) // 379 } }
Ujian dalam repositori rasmi mendapatkan semula nilai dengan cara yang sama. Lihat testintegration_countaggregationquery.
Atas ialah kandungan terperinci Tukar firestore 'integer_value' kepada integer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!