注意事项
使用 SequoiaDB 巨杉数据库的 JSON 实例时需要注意以下几点:
SequoiaDB 巨杉数据库 JSON 实例严格区分大小写
例如,在执行以下两条获取集合空间句柄操作时, “emp” 和 “EMP” 表示的是两个不同的集合空间,有独立的集合和数据:
> db["emp"]
localhost:11810.emp
Take 0.000655s.
> db["EMP"]
localhost:11810.EMP
Take 0.000101s.
SequoiaDB 巨杉数据库 JSON 实例使用动态数据类型
例如,一变量在进行赋值操作后,仍然可以将其赋值为其他数据类型的值:
> var variable = 1;
Takes 0.000049s.
> typeof(variable)
number
Takes 0.000058s.
> variable = "hello world";
Takes 0.000065s.
> typeof(variable)
string
Takes 0.000081s.
SequoiaDB 巨杉数据库 JSON 实例无函数重载概念
例如,对于以下定义的两个同名函数 func() 和 func(parameter) ,只有后定义的 func(parameter) 会生效:
> function func(){ println("function has no parameter"); }
Takes 0.000063s.
> function func(parameter){ println("function has parameter"); }
Takes 0.000087s.
> func();
function has parameter
Takes 0.000059s.
> func("hello");
function has parameter
Takes 0.000071s.
SequoiaDB 巨杉数据库 JSON 实例使用 Float 存储浮点型数据,注意精度问题
例如,定义两个浮点型数据 v1 和 v2 ,在执行加法操作后赋值给 v3 ,根据数学加法定义可以轻易计算出 v3 的值为 0.3 ,但是由于 Float 存储小数的精度问题,实际上 v3 与 0.3 并不相等:
> var v1 = 0.1
Takes 0.000119s.
> var v2 = 0.2
Takes 0.000087s.
> var v3 = v1 + v2
Takes 0.000060s.
> println(v3)
0.30000000000000004
Takes 0.000063s.
> println(v3 == 0.3)
false
Takes 0.000048s.