「SequoiaDB巨杉数据库」flags()

语法

query.flags( <flag> )

类别

SdbQuery

描述

按指定的标志位遍历结果集。

参数

参数名参数类型默认值描述是否必填
flag枚举---标志位

flag 参数的可选值如下表:

可选值描述
SDB_FLG_QUERY_FORCE_HINT当添加该标志位之后,将强制使用指定的索引进行查询,如果数据库没有指定的索引,则报错,无法查询
SDB_FLG_QUERY_PARALLED当添加该标志位之后,将启用并行子查询,每个子查询将完成扫描不同部分的数据
SDB_FLG_QUERY_WITH_RETURNDATA一般查询时不会返回数据,只返回相应的游标,然后再通过游标获取数据。当添加该标志位之后,将在查询响应中返回数据,该标志位是默认开启的
SDB_FLG_QUERY_PREPARE_MORE在查询时,服务端会与客户端进行多次传输,把查询结果返回给客户端。当添加该标志位之后,服务端每次会传输更多的查询数据给客户端,减少服务端和客户端的传输次数,从而减少网络开销
SDB_FLG_QUERY_FOR_UPDATE当事务处于开启状态且事务隔离级别为 “RC” 时,默认情况下读取记录后将释放事务锁定。当添加该标志位之后,事务锁将不会在事务提交或回滚之前释放。当事务处于关闭状态或者事务隔离级别为 “RU” 时,该标志位不起作用

Note:

假设用户指定了集合中不存在的索引查询数据,那么查询会进行全表查询,而不是索引查询。如果用户指定了集合中不存在的索引查询数据,然后又指定了 SDB_FLG_QUERY_FORCE_HINT 标志位,因为该标志位是强制进行索引查询,所以用户执行该操作会报错。

返回值

返回查询结果集的游标。

错误

如果出错则抛异常,并输出错误信息,可以通过getLastErrMsg()获取错误信息或通过getLastError()获取错误码。 关于错误处理可以参考常见错误处理指南

常见错误可参考错误码

示例

  • 强制使用指定的索引进行查询。

    > db.sample.employee.find().hint( { "": "ageIndex" } ).flags( SDB_FLG_QUERY_FORCE_HINT )
    {
      "_id": {
        "$oid": "5d412cfa614afb5557b2b41d"
      },
      "name": "fang",
      "age": 18
    }
    {
      "_id": {
        "$oid": "5d412cfa614afb5557b2b41c"
      },
      "name": "alice",
      "age": 19
    }
    {
      "_id": {
        "$oid": "5d412cfa614afb5557b2b41b"
      },
      "name": "ben",
      "age": 21
    }
    
    > db.sample.employee.find().hint( { "": "notExistIndex" } ).flags( SDB_FLG_QUERY_FORCE_HINT )
    uncaught exception: -53
    Invalid hint
    Takes 0.003438s.

相关文章请点击阅读

「SequoiaDB巨杉数据库」setPDLevel() 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值