注意事项

使用 SequoiaDB 巨杉数据库的 JSON 实例时需要注意以下几点:

  • SequoiaDB 巨杉数据库 JSON 实例严格区分大小写

    例如,在执行以下两条获取集合空间句柄操作时, “emp” 和 “EMP” 表示的是两个不同的集合空间,有独立的集合和数据:

    1. > db["emp"]
    2. localhost:11810.emp
    3. Take 0.000655s.
    4. > db["EMP"]
    5. localhost:11810.EMP
    6. Take 0.000101s.
  • SequoiaDB 巨杉数据库 JSON 实例使用动态数据类型

    例如,一变量在进行赋值操作后,仍然可以将其赋值为其他数据类型的值:

    1. > var variable = 1;
    2. Takes 0.000049s.
    3. > typeof(variable)
    4. number
    5. Takes 0.000058s.
    6. > variable = "hello world";
    7. Takes 0.000065s.
    8. > typeof(variable)
    9. string
    10. Takes 0.000081s.
  • SequoiaDB 巨杉数据库 JSON 实例无函数重载概念

    例如,对于以下定义的两个同名函数 func() 和 func(parameter) ,只有后定义的 func(parameter) 会生效:

    1. > function func(){ println("function has no parameter"); }
    2. Takes 0.000063s.
    3. > function func(parameter){ println("function has parameter"); }
    4. Takes 0.000087s.
    5. > func();
    6. function has parameter
    7. Takes 0.000059s.
    8. > func("hello");
    9. function has parameter
    10. Takes 0.000071s.
  • SequoiaDB 巨杉数据库 JSON 实例使用 Float 存储浮点型数据,注意精度问题

    例如,定义两个浮点型数据 v1 和 v2 ,在执行加法操作后赋值给 v3 ,根据数学加法定义可以轻易计算出 v3 的值为 0.3 ,但是由于 Float 存储小数的精度问题,实际上 v3 与 0.3 并不相等:

    1. > var v1 = 0.1
    2. Takes 0.000119s.
    3. > var v2 = 0.2
    4. Takes 0.000087s.
    5. > var v3 = v1 + v2
    6. Takes 0.000060s.
    7. > println(v3)
    8. 0.30000000000000004
    9. Takes 0.000063s.
    10. > println(v3 == 0.3)
    11. false
    12. Takes 0.000048s.