使用Shell执行脚本

本章节主要讲述如何使用 SequoiaDB 巨杉数据库自带的 Shell 工具执行 JavaScript 脚本。 Shell 工具是一个 JavaScript 工具,能与 SequoiaDB 巨杉数据库进行命令交互。用户通过 SequoiaDB Shell 工具执行 JavaScript 脚本,能方便灵活的实现对数据进行增删改查等操作。

JavaScript 脚本

JavaScript 脚本的主要功能包括:创建集合空间集合,数据的增删改查操作。

JavaScript 脚本(sdb_shell_test.js)的示例如下:

  1. function main(){
  2. // 连接数据库实例
  3. // hostname 主机名, service_name 协调节点
  4. var db = new Sdb(hostname,service_name);
  5. // 创建集合空间
  6. // cs_name 集合空间名
  7. var cs_obj = db.createCS(cs_name);
  8. // 创建集合
  9. // cl_name 集合名
  10. var cl_obj = cs_obj.createCL(cl_name);
  11. // 插入数据
  12. cl_obj.insert({"emp_no": 10002,"birth_date": "1964-06-02", "first_name": "Bezalel", "last_name": "Simmel", "gender": "F", "hire_date": "1985-11-21"});
  13. cl_obj.insert({"emp_no": 10003,"birth_date": "1959-12-03", "first_name": "Parto", "last_name": "Bamford", "gender": "M", "hire_date": "1986-08-28"});
  14. cl_obj.insert({"emp_no": 10004,"birth_date": "1954-05-01", "first_name": "Chirstian", "last_name": "Koblick", "gender": "M", "hire_date": "1986-12-01"});
  15. // 修改数据
  16. cl_obj.update({"$set": {"first_name": "SequoiaDB"}},{"emp_no": 10003});
  17. // 删除数据
  18. cl_obj.remove({"emp_no": 10004});
  19. }
  20. main();

执行 JavaScript 脚本

当用户使用 SequoiaDB Shell 工具执行 JavaScript 脚本,可参考以下示例:

  1. $ export SEQUOIADB_HOME=`cat /etc/default/sequoiadb |grep "INSTALL_DIR"|cut -d "=" -f 2`
  2. $ {SEQUOIADB_HOME}/bin/sdb -e "var hostname = 'localhost'; var service_name = 11810; var cs_name = 'emp'; var cl_name = 'employees';" -f sdb_shell_test.js

用户可以通过 SequoiaDB Shell 查看集合记录:

  1. > db.emp.employees.find()
  2. {
  3. "_id": {
  4. "$oid": "5c8b6eb49c91348f8af3b5b9"
  5. },
  6. "emp_no": 10002,
  7. "birth_date": "1964-06-02",
  8. "first_name": "Bezalel",
  9. "last_name": "Simmel",
  10. "gender": "F",
  11. "hire_date": "1985-11-21"
  12. }
  13. {
  14. "_id": {
  15. "$oid": "5c8b6eb49c91348f8af3b5ba"
  16. },
  17. "birth_date": "1959-12-03",
  18. "emp_no": 10003,
  19. "first_name": "SequoiaDB",
  20. "gender": "M",
  21. "hire_date": "1986-08-28",
  22. "last_name": "Bamford"
  23. }
  24. Return 2 row(s).
  25. Takes 0.046815s.

SequoiaDB Shell 执行远端命令可参考本地执行远端命令说明。