以为只有在关系型数据库中才有存储过程,原来在NoSQL中也有。下来主要介绍SequoiaDB的存储过程。
首先,连上db后,创建集合空间和集合之后,就可以创建存储过程了。如官网所述
db.createProcedure(function sum(x,y){return x+y;})
结果出现uncaught exception: -34错误
由于-34错误是“集合空间不存在”引起的,所以查看集合空间,
发现集合空间是存在的,结果有查看db.listProcedures()是否有问题,结果也返回了0 rows。这也间接这个函数不应该报-34这个错。结果在某人提醒下发现,运行db.help()可以查看到SequoiaDB支持db的所有函数,发现了createProcedures(<code>),于是运行
db.createProcedures(function sum(x,y){return x+y;})
db.listProcedures()
然后可以执行db.eval(<code>)来输出存储过程的值。
存储过程可以创建,当然也可以删除。
结论:NoSQL也可以有自己的存储过程。在SequoiaDB中遇到-34,不一定是真的缺少集合空间,可能是函数名写错了,可以通过db.help()来查证。还有关于查询错误码的原因可以使用getErr,例如getErr(-34)。