我正在編寫鏈代碼,其中將一些數(shù)據(jù)放入分類帳中,然后嘗試使用 shim.GetStateByPartialCompositeKey() 列出它,其中我從迭代器獲取數(shù)據(jù)列表?,F(xiàn)在我想根據(jù)時(shí)間戳對(duì)數(shù)據(jù)進(jìn)行排序(僅按日期格式化,而不需要小時(shí)、分鐘或秒)。所以,我想知道我從迭代器列出的數(shù)據(jù)是否按照存儲(chǔ)在分類帳中的時(shí)間戳排序,或者我是否需要對(duì)它們進(jìn)行排序?var AvalList = make([]A, 0)iterator, err := stub.GetStateByPartialCompositeKey("AId~BId", []string{AId}) if err != nil { fmt.Println("error is ", err) return shim.Error(err.Error()) } fmt.Println("Iterator is ", iterator) if !iterator.HasNext() { fmt.Println("--------------------- Iterator not found!!! --------------------") return shim.Error(err.Error()) } defer iterator.Close() for i := 0; iterator.HasNext(); i++ { ARange, err := iterator.Next() if err != nil { return shim.Error(err.Error()) } objectType, compositeKeyParts, err := stub.SplitCompositeKey(ARange.Key) if err != nil { return shim.Error(err.Error()) } returnedA := compositeKeyParts[1] fmt.Printf("Found a A of index %s and id %s ", objectType, returnedA) ABytes, err := stub.GetState(returnedA) if err != nil { return shim.Error(err.Error()) } if ABytes == nil { fmt.Println("A not found") return shim.Error("Entity not found") } a := A{} err = json.Unmarshal(ABytes, &a) if err != nil { return shim.Error("Failed to unmarshal") } AvalList = append(AvalList, a) }
1 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
GetStateByPartialCompositeKey 根據(jù)給定的部分組合鍵查詢賬本中的狀態(tài)。此函數(shù)返回一個(gè)迭代器,可用于迭代其前綴與給定的部分復(fù)合鍵匹配的復(fù)合鍵。
我從迭代器列出的數(shù)據(jù)按時(shí)間戳排序
不,它不會(huì)按排序順序排列。例如,如果您正在查詢大量數(shù)據(jù),那么迭代器將獲取所有組合鍵,這些組合鍵不一定按排序順序排列。因此你必須對(duì)它們進(jìn)行排序。
執(zhí)行此操作的方法之一是使用 sort.Sort() 函數(shù)。這
- 1 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)
0/150
提交
取消