第九章 管理文档 - 查询数据库中的文档:%ExecuteQuery()
查询数据库中的文档:%ExecuteQuery()
可以使用 %ExecuteQuery()方法将数据库中的文档数据作为结果集返回。指定标准 SQL 查询 SELECT,并在 FROM 子句中指定数据库名称。如果创建数据库名称时没有包名称(架构),请指定默认 ISC_DM 架构。
以下示例从数据库中的所有文档中检索 %Doc 内容数据作为结果集:
SET rval=db.%ExecuteQuery("SELECT %Doc FROM ISC_DM.People")
DO rval.%Display()
以下示例使用 WHERE 子句条件来限制通过 documentId 值检索哪些文档:
SET rval=db.%ExecuteQuery("SELECT %DocumentId,%Doc FROM ISC_DM.People WHERE %DocumentId > 2")
DO rval.%Display()
以下示例从满足 WHERE 子句条件的所有文档中检索 %DocumentId 和 lastName 属性。请注意,要检索用户定义键的值,必须为该键定义文档属性:
SET rval=db.%ExecuteQuery("SELECT %DocumentId,lastName FROM ISC_DM.People WHERE lastName %STARTSWITH 'S'")
DO rval.%Display()
删除文档:%DeleteDocument()
可以通过文档 ID 或数据选择条件从数据库中删除文档。
%DeleteDocument()方法删除由documentId标识的单个文档:
SET val = db.%DeleteDocument(2)
WRITE "deleted document = ",val.%ToJSON()
成功完成将返回已删除文档的 JSON 值。失败会引发 StatusException 错误。
%DeleteDocumentByKey()方法删除由文档内容标识的文档。指定键:值对。%Clear()方法删除数据库中的所有文档并返回数据库的oref(对象引用),如下例所示:
SET dboref = db.%Clear()
WRITE "database oref: ",dboref,!
WRITE "number of documents:",db.%Size()
这允许链接方法,如以下示例所示:
WRITE db.%Clear().%SaveDocument({"firstName":"Venus","lastName":"Williams"}).%Id(),!