文档

关于 SequoiaDB

快速入门

安装

基本操作

数据模型

SQL引擎

FileSystem引擎

S3引擎

系统架构

数据库管理

连接器

驱动

参考手册

SequoiaDB Shell方法

概述

Global

Sdb

SecureSdb

SdbCS

SdbCollection

SdbCursor

SdbQuery

SdbReplicaGroup

SdbNode

SdbDomain

Oma

File

FileContent

Cmd

Remote

Hash

IniFile

Sdbtool

Ssh

System

辅助类型对象

特殊类型对象

操作符

SQL语法

SQL to SequoiaDB 映射表

限制

错误码

故障排除

SAC 管控中心

Web服务

版本信息

eval()

语法

db.eval( <code> )

根据需要填入 JavaScript 语句。同时可以在语句中调用已经创建好的存储过程。

参数描述

参数名 参数类型 描述 是否必填
code 字符串 JavaScript 语句或者创建好的存储过程函数

Note:

虽然语句中的所有输出都会被屏蔽,但还是建议不要加入任何打印语句。

返回值

(1) 执行成功则按照语句返回结果。可以将返回值直接赋值给另一个变量。如:var a = db.eval( 'db.foo.bar' ); a.find();

(2) 执行失败会返回错误码及错误信息,可以通过 getLastErrMsg() 获取错误信息 或 通过 getLastError() 获取错误码。关于错误处理可以参考常见错误处理指南

(3) 在函数执行结束前操作不会返回。中途退出则终止整个执行,但已经执行的代码不会被回滚。

(4) 自定义返回值的长度有一定限制,参考 SequoiaDB 插入记录的最大长度。

(5) 支持定义临时函数。如:db.eval( 'function sum(x,y){return x+y;} sum(1,2)' )

(6) 全局 db 使用方式与 createProcedure() 相同。

示例

  • 在eval() 方法中调用存储过程函数 sum

    //初始时 sum() 方法不存在,返回异常信息
    > var a = db.eval( 'sum(1,2)' );
    { "errmsg": "(nofile):1 ReferenceError: getCL is not defined", "retCode": -152 }
    (nofile):0 uncaught exception: -152
    //初始化 sum()
    > db.createProcedure( function sum(x,y){return x+y;} )
    //调用 sum()
    > db.eval( 'sum(1,2)' )
    3
  • 在 eval() 方法中填写 JavaScript 语句

    > var rc = db.eval( "db.foo.bar" )
    > rc.find()
    {
    "_id": {
     "$oid": "5248d3867159ae144a000000"
    },
    "a": 1
    }
    {
    "_id": {
     "$oid": "5248d3897159ae144a000001"
    },
    "a": 2
    }...
回到顶部