文档章节

Fluid Querying with Casbah's DSL

Gavin_Zhang
 Gavin_Zhang
发布于 2013/05/23 16:53
字数 264
阅读 142
收藏 1

Casbah 通过使用MongoDB查询运算符来创建MongoDBObject,提供了更丰富的查询手段。但不得不说地是,文档的确做不好。要想知道那些运算符可以使用,直接看Casbah的jar包可能还能方便点:

com.mongodb.casbah.query.dsl

 

在使用中需要特别说明的,和以前使用sql一个不一样的地方。比如SQL查询“select name from people where age >18 and age <60”相应的DSL是 (“age”$ge 18 $le 60)。而不能在构造DBObject时写成:

val q = (“age”$ge 18)++ (“age”$le 60)

这时q为{“age”: $le: {60}}。age>18的指定就会被覆盖掉。它和SQL的条件语句是不一样的。

MongoDBObject是一个类Map的数据结构。

Cashbash $or 的用法例子:

  def byPeriod(startDate: DateTime, endDate: DateTime) = {
    val or = MongoDBObject("$or" -> MongoDBList("StartDate" $gte startDate $lte endDate, "FinishDate" $gte startDate $lte endDate))
    val q: MongoDBObject = or ++
      ("ResourceName" $in (devs))

    for (rawtask <- mongoCollection.find(q).toList) yield new Task(rawtask)
  }

{OutlineNum: /^1..$/} 在Cashbash是:MongoDBObject("OutlineNum" -> "^1..$".r)

【参考】

Fluid Querying with Casbah's DSL   — Casbah (MongoDB + Scala Toolkit) Documentation 2.6.1 documentation  http://t.cn/zHbhUpx

SQL to MongoDB Mapping Chart — MongoDB Manual 2.4.3 http://t.cn/zj3n42K

© 著作权归作者所有

共有 人打赏支持
上一篇: Android开发笔记
下一篇: Date type in Cashbah
Gavin_Zhang
粉丝 5
博文 10
码字总数 3076
作品 0
西安
技术主管
私信 提问
scala 操作mongodb

介绍 Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件必不可少...

蓝狐乐队
2016/03/04
44
0
scala内 error: not found: value MongoClientURI

test\MongoUtil.scala:22: error: not found: value MongoClientURI [INFO] val uri = MongoClientURI("mongodb: error: object casbah is not a member of package com.mongodb [INFO] impo......

天池番薯
2016/12/15
111
0
Python-SQLALchemy

官方文档 Initialization 正式创建数据表 Creating a Session 下面的操作都是要通过会话对象操作 Adding and Updating Objects 添加一个User对象 查询一下,使用来过滤,只列出第一个查询到的...

ormsf
08/27
0
0
Lisp 的永恒之道

Lisp之魅 长久以来,Lisp一直被许多人视为史上最非凡的编程语言。它不仅在50多年前诞生的时候带来了诸多革命性的创新并极大地影响了后来编程语言的发 展,即使在一大批现代语言不断涌现的今天...

虫虫
2012/06/09
4.2K
9
windows下的fltk之编译以及试运行

准备过程 安装mingw,msys环境 下载fltk源代码 打开msys运行环境,将工作目录cd到fltk解压后的目录 按默认设置,,,,在Compiling factory.cxx...这个过程中可能会遇到一个错误error: 'int...

stupidgrass
2013/10/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

进程管理利器Supervisor--centos7下安装与卸载

目录 概述 环境准备 检查python环境 在线安装 配置Supervisor 启动并验证 概述 Supervisor的安装可以有在线安装和离线安装两种方式。安装方式取决于服务器是否联网,联网的话可采用在线安装,...

java_龙
17分钟前
2
0
spring系列汇总

spring spring-基于可扩展Schema的特性自定义标签 springmvc-同一个访问资源,多种视图解析方式 spring cache 配置使用aspectj模式织入 基于注解的spring缓存,轻松无侵入解决cache问题 spri...

细肉云吞
18分钟前
2
0
vsftpd搭建ftp

12月10日任务 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp exportfs命令 在nfs运行后的一段时间内,如果需要添加共享目录,这时需要修改exports文件,并...

robertt15
20分钟前
2
0
numpy常用操作

水平合并数组 import numpy as npa = [1,2,3]b = [4,5,6]np.hstack((a,b))# array([1, 2, 3, 4, 5, 6])c = [a,['a','b','c']]d = [b,['d','e','f']]np.hstack((c,d))#array([['1'......

datadev_sh
36分钟前
5
0
四种检测异常值的常用技术简述

摘要: 本文介绍了异常值检测的常见四种方法,分别为Numeric Outlier、Z-Score、DBSCAN以及Isolation Forest 在训练机器学习算法或应用统计技术时,错误值或异常值可能是一个严重的问题,它们...

阿里云官方博客
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部