SequoiaDB的Shell开发、特殊的数据类型

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"))

猜你喜欢

转载自blog.csdn.net/weixin_43837588/article/details/88106834