文档章节

Fluid Querying with Casbah's DSL

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

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

ormsf
08/27
0
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

没有更多内容

加载失败,请刷新页面

加载更多

20181018 上课截图

![](https://oscimg.oschina.net/oscnet/49f66c08ab8c59a21a3b98889d961672f30.jpg) ![](https://oscimg.oschina.net/oscnet/a61bc2d618b403650dbd4bf68a671fabecb.jpg)......

小丑鱼00
50分钟前
1
0
WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
15
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部