get和filter是model API中两个重要的函数,用于根据给出的条件获取或过滤符合要求的实例。这些条件必须写在一个query表里面,query表类似如下形式:
model_obj:filter { foo=bar, x=lt(1000), timestamp=gt(100000) }
filter返回一个query_set,即对象的一个特殊列表(此列表仍然可以调用Model的基本方法),而get仅仅返回一个(第一个)对象实例。
以下函数放在query表中使用。
相等判断
eq (cmp_obj) 返回true,如果相等;否则,返回false
cmp_obj: 待比较的对象
不相等判断
uneq (cmp_obj) 返回true,如果不相等;否则,返回false
cmp_obj: 待比较的对象
过滤出小于litmitation的部分
lt (limitation) 返回true,如果检查的目标用于比较的字段值小于limitation;否则,返回false
limitation: 数值。上限
过滤出大于litmitation的部分
gt (limitation) 返回true,如果检查的目标用于比较的字段值大于limitation;否则,返回false
limitation: 数值。下限
过滤出小于等于litmitation的部分
le (limitation) 返回true,如果检查的目标用于比较的字段值小于等于limitation;否则,返回false
limitation: 数值。上限
过滤出大于等于litmitation的部分
ge (limitation) 返回true,如果检查的目标用于比较的字段值大于等于limitation;否则,返回false
limitation: 数值。下限
过滤出界于small和big之间(开区间,不含边界)的部分
bt (small, big) 返回true,如果检查的目标用于比较的字段值在区间内;否则,返回false
small: 区间左边界
big: 区间右边界
过滤出界于small和big之间(闭区间,含边界)的部分
be (small, big) 返回true,如果检查的目标用于比较的字段值在区间内;否则,返回false
small: 区间左边界
big: 区间右边界
过滤出界于small和big之外(闭区间,含边界)的部分
outside (small, big) 返回true,如果检查的目标用于比较的字段值在区间外;否则,返回false
small: 区间左边界
big: 区间右边界
过滤出在待检字段中包含substr字符串的实例
contains (substr) 返回true,如果substr在待检字段中;否则,返回false
substr: 用于检验的字符串
过滤出在待检字段中以substr字符串开头的实例
startsWith (substr) 返回true,如果待检字段以substr开头;否则,返回false
substr: 用于检验的字符串
过滤出在待检字段中以substr字符串结尾的实例
endsWith (substr) 返回true,如果待检字段以substr结尾;否则,返回false
substr: 用于检验的字符串
过滤出待检字段在给定参数列表范围内的实例
inset (...) 返回true,如果待检字段在参数列表内;否则,返回false
...: 一个参数列表,相互之间用逗号隔开
过滤出待检字段不在给定参数列表范围内的实例
uninset (...) 返回true,如果待检字段不在参数列表内;否则,返回false
...: 一个参数列表,相互之间用逗号隔开
query参数表的与逻辑与或逻辑
query参数表的形式 model_obj:filter { x='a', y='b', z='c' },表中的各项之间是“与”逻辑的关系,用得最多的就是这种逻辑。但另一种逻辑——“或”逻辑,也是必不可少的。在bamboo中,目前还没实现一套完整的query逻辑表达式解释器,而是用了如下一种简单的方式来处理。
与逻辑:model_obj:filter { x='a', y='b', z='c' } 或 model_obj:filter {'and', x='a', y='b', z='c' } query中的各参数是与逻辑的关系。即检查的实例必须满足所有的条件后才被取出
或逻辑:model_obj:filter {'or', x='a', y='b', z='c' } query中的各参数是或逻辑的关系。即检查的实例只要满足一个条件就被取出
仅仅有这一点还只能处理一层逻辑关系,真正要做到高效处理(部分)多层逻辑关系,还得有下面的链式语法的支持
model_obj:filter(.....):filter(....) 意思是在过滤出的结果里面继续过滤,直到得到想要的数据集合
实现上述链式操作的基础在于query_set。query_set是一种特殊的对象列表,它虽然不是对象,却仍然可以调用Model的一些方法(需专门开放给query_set,针对query_set的情况做处理)。目前来讲,开放了filter和del两个函数给query_set用。
另一方面,query_set是List的实例,它仍然可以使用List类提供的各种方法。
分享到:
相关推荐
066TGp_bamboo_green_v2_2
标题 "wacom_bamboo_pentablet_5_3_2_2_driver.zip" 提供的信息表明,这是一个关于Wacom Bamboo系列手绘板的驱动程序更新,版本号为5.3.3-2。Wacom是知名的数字艺术工具制造商,而Bamboo CTL660是一款针对创意工作者...
《安卓开发中的高德地图API应用实践:AMap_Android_API_Demo_V2.0.4(Location_API_V1.0.2)详解》 在移动应用开发领域,地图服务是不可或缺的一部分,尤其在导航、定位、地理信息展示等方面。高德地图作为国内领先的...
具体API的使用方法需要查看库的官方文档或通过`help(bamboo_ipa_sync)`获取。 4. 配置与设置:根据项目需求,可能需要配置相关的参数,比如IP地址池、网络设备信息等,这通常涉及到创建配置文件或在代码中设定。 5. ...
066TGp_bamboo_green_v2
JavaScript应用实例-AJ_api_search.js
GitHub Enterprise用户可以在Bamboo启动脚本中设置ATLASSIAN_BAMBOO_GITHUB_API_BASE_URL环境变量,以使GitHub存储库类型(和此插件)正常工作。 注意:确保Bamboo用来签出您的存储库的用户也具有写权限,否则它将...
JavaScript应用实例-AJ_api_search(1).js
竹-CI 使用 Atlassian 的 Bamboo CI 服务器上提供的 API 的简单库。用法 var Bamboo = require('bamboo-ci');var bamboo = new Bamboo('http://bamboo.mycompany.com', 'my', 'Password!');bamboo.getServerStatus()...
这是Bamboo HR的非官方Python API。 到目前为止,它专注于管理员工信息,但是您几乎可以使用一个小python来做任何您想做的事情。 该库使用Python和的库进行测试。 非常感谢你们两个优秀的项目。 使用这个库非常...
使用SendInBlue API v2.0 安装 如果,则可以将软件包安装为: 添加bamboo_sendinblue到您的依赖项列表mix.exs : def deps do [{ :bamboo_sendinblue , " ~> 0.2.0 " }] end 在应用程序之前,请确保启动了...
JavaScript应用实例-sun_rise&set.js
JavaScript应用实例-TheWolf_API.js
**Bamboo SMTP适配器详解** Bamboo是Elixir语言中的一款强大的邮件库,它使得发送电子邮件变得简单而灵活。Bamboo_smtp是Bamboo的一个SMTP适配器,专门用于通过SMTP(Simple Mail Transfer Protocol)协议发送电子...
【Bamboo系列_CTH670驱动】是一款专为Wacom Bamboo CTH670数位板设计的驱动程序,适用于那些丢失原有驱动光盘或者需要在无光驱环境下安装设备的用户。Wacom Bamboo CTH670是一款广受艺术家、设计师以及爱好者欢迎的...
安装官方包,并申请到试用License之后,停止bamboo服务,将文件复制到atlassian/bamboo/atlassian-bamboo/WEB-INF/lib 覆盖同名文件,然后重启bamboo.仅供学习使用, 商业使用请购买授权
适用于Bamboo的AWS SES适配器 安装 该软件包可以通过添加安装bamboo_ses你在依赖列表mix.exs : def deps do [ { :bamboo_ses , " ~> 0.2.0 " } ] end 配置 更改邮件程序的配置: config :my_app , MyApp . ...
bamboo-agent-utility install ~ /bamboo 卸载Bamboo代理: bamboo-agent-utility uninstall ~ /bamboo 它能做什么? 安装Bamboo代理 如果您的Bamboo CI服务器托管在具有自签名SSL证书的内部服务器上,它将在本地...
标题中的"PyPI 官网下载 | bamboo-pipeline-3.6.3.tar.gz"指出这是一个从Python Package Index(PyPI)官方站点获取的软件包,名为“bamboo-pipeline”。这个软件包的版本是3.6.3,并且是以tar.gz格式压缩的。在...