启动Shell模式

SequoiaDB Shell 是 SequoiaDB 巨杉数据的交互式 JavaScript 接口,提供插入、查询、更新、删除等数据操作和数据库管理操作。SequoiaDB 巨杉数据库提供以下三种方式启动 SequoiaDB Shell。

交互模式

进入 SequoiaDB Shell 控制台进行数据操作,如使用以下命令进行连接、创建集合空间、创建集合、插入数据和查询数据操作:

  1. $ sdb
  2. > var db= new Sdb()
  3. Takes 0.046788s.
  4. > var cs = db.createCS("emp")
  5. Takes 0.022974s.
  6. > db.emp.createCL("employees")
  7. localhost:11810.emp.employees
  8. Takes 0.361858s.
  9. > db.emp.employees.insert({"emp_no": 10001,"birth_date": "1995-06-02","first_name": "Bezalel","last_name": "Simmel","gender": "F","hire_date": "2018-11-21"})
  10. Takes 0.011415s.
  11. > db.emp.employees.find({"emp_no": 10001})
  12. {
  13. "_id": {
  14. "$oid": "5cb05debd737b02dca3f9b6f"
  15. },
  16. "emp_no": 10001,
  17. "birth_date": "1995-06-02",
  18. "first_name": "Bezalel",
  19. "last_name": "Simmel",
  20. "gender": "F",
  21. "hire_date": "2018-11-21"
  22. }
  23. Return 1 row(s).
  24. Takes 0.027824s.

嵌入命令模式

支持在 Linux Shell 环境中直接与 SequoiaDB 巨杉数据库交互,如使用以下命令进行连接、查询操作:

  1. $ sdb 'var db = new Sdb()'
  2. $ sdb 'db.emp.employees.find({"emp_no": 10001})'
  3. {
  4. "_id": {
  5. "$oid": "5cb05debd737b02dca3f9b6f"
  6. },
  7. "emp_no": 10001,
  8. "birth_date": "1995-06-02",
  9. "first_name": "Bezalel",
  10. "last_name": "Simmel",
  11. "gender": "F",
  12. "hire_date": "2018-11-21"
  13. }
  14. Return 1 row(s).

脚本模式

将需要执行的 SequoiaDB Shell 操作写成一个 JavaScript 脚本文件,使用 -f 命令参数可以执行该脚本。关于脚本模式的详细信息可参考使用 Shell 执行脚本

  1. 将 SequoiaDB Shell 操作写成一个 JavaScript 脚本文件,如创建名称为 query_data.js 的脚本文件,执行连接、查询操作。文件的具体内容如下:

    1. $ cat query_data.js
    2. var db = new Sdb();
    3. var cs = db.getCS("emp");
    4. var cl = cs.getCL("employees");
    5. var condition = {"emp_no" : 10001};
    6. var cursor = cl.find(condition);
    7. while( cursor.next() ){
    8. var record = cursor.current().toString();
    9. println(record);
    10. }
    11. cursor.close();
    12. db.close();
  2. 使用 SequoiaDB Shell 的 -f 命令参数指定执行 query_data.js 脚本:

    1. $ sdb -f query_data.js
    2. {
    3. "_id": {
    4. "$oid": "5cb05debd737b02dca3f9b6f"
    5. },
    6. "emp_no": 10001,
    7. "birth_date": "1995-06-02",
    8. "first_name": "Bezalel",
    9. "last_name": "Simmel",
    10. "gender": "F",
    11. "hire_date": "2018-11-21"
    12. }