Shell
bin/sdb --help
参数
-s "db = new Sdb(); db.list(4)"
:不进入交互式界面的情况下执行shell命令
-f test.js
:执行js文件中的shell语句
-e "var i = 9"
:优先于-f,输入参数
例子
test.js
db = new Sdb();
var cursor = db.list(4);
while (cursor.next()){
var obj = cursor.current().toJson();
println(obj);
}
db.close();
println("hello SequoiaDB 1");
println("input = " + i)
bin/sdb -f test.js -e "var i = 100"
运行结果:
{ “Name”: “foo.bar” }
hello SequoiaDB 1
input = 100
-s:
原理:产生一个新的进程sdbbp,是一个管道,把输入的参数传送到底层的javascript引擎去操作sdb。如果中途kill了这个进程,前面输入的语句就会从内存中被回收掉,之后的语句如果应用到前面创建的对象的话,就会执行失败。
特殊的数据类型
OID
db.foo.bar.insert({a:ObjectId() })
也可以手动设置OID,长度为12字节(24个字母/数字),16进制字符串
db.foo.bar.insert({a:ObjectId("55713f7953e6769804000001")})
Timestamp
YYYY-MM-DD-HH.mm.ss.ffffff形式的时间戳。范围:1902-01-01 00:00:00.000000至2037-12-31 23:59:59.999999
db.foo.bar.insert( { a: Timestamp( "2015-06-05-16.10.33.000000" ) } )
查找时,数据类型也必须为Timestamp
db.foo.bar.find({a:Timestamp("2015-06-05-16.10.33.000000")})
SdbDate
YYYY-MM-DD形式的日期。范围:0000-01-01至9999-12-31
db.foo.bar.insert({date:SdbDate("2019-03-04")})
查找时,数据类型也必须为SdbDate类型
db.foo.bar.find(date:SdbDate("2019-03-04"))