• ZRangeByScore
    ZRangeByScore

    返回指定bucket有序集合的分数start到end的范围(包括start和end)的所有元素。其中有个Opts参数用法参考ZCount

    1. // ZAdd
    2. if err := db.Update(
    3. func(tx *nutsdb.Tx) error {
    4. bucket := "myZSet3"
    5. key1 := []byte("key1")
    6. return tx.ZAdd(bucket, key1, 70, []byte("val1"))
    7. }); err != nil {
    8. log.Fatal(err)
    9. }
    10. if err := db.Update(
    11. func(tx *nutsdb.Tx) error {
    12. bucket := "myZSet3"
    13. key2 := []byte("key2")
    14. return tx.ZAdd(bucket, key2, 90, []byte("val2"))
    15. }); err != nil {
    16. log.Fatal(err)
    17. }
    18. if err := db.Update(
    19. func(tx *nutsdb.Tx) error {
    20. bucket := "myZSet3"
    21. key3 := []byte("key3")
    22. return tx.ZAdd(bucket, key3, 86, []byte("val3"))
    23. }); err != nil {
    24. log.Fatal(err)
    25. }
    26. // ZRangeByScore
    27. if err := db.View(
    28. func(tx *nutsdb.Tx) error {
    29. bucket := "myZSet3"
    30. if nodes, err := tx.ZRangeByScore(bucket, 80, 100,nil); err != nil {
    31. return err
    32. } else {
    33. fmt.Println("ZRangeByScore nodes :", nodes)
    34. for _, node := range nodes {
    35. fmt.Println("item:", node.Key(), node.Score())
    36. }
    37. //item: key3 86
    38. //item: key2 90
    39. }
    40. return nil
    41. }); err != nil {
    42. log.Fatal(err)
    43. }