文档章节

Fluid Querying with Casbah's DSL

Gavin_Zhang
 Gavin_Zhang
发布于 2013/05/23 16:53
字数 264
阅读 136
收藏 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

© 著作权归作者所有

共有 人打赏支持
Gavin_Zhang
粉丝 5
博文 10
码字总数 3076
作品 0
西安
技术主管
scala 操作mongodb

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

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

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

Baclk5
2016/12/15
42
0
Lisp 的永恒之道

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

虫虫
2012/06/09
4K
9
使用gradle构建java项目(2)

可以先参考我的前一篇博客 使用gradle构建java项目 project下有哪些属性 参考: https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project.extraproperties ......

黄威
07/12
0
0
windows下的fltk之编译以及试运行

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

stupidgrass
2013/10/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
17分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
19分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
23分钟前
1
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
28分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部