Casbah query DSL
Using DBObject
instances to express queries can be very verbose and somewhat difficult to read. Casbah provides a DSL to express queries much more succinctly. For instance, to get all the documents with the github_id
field between 20
and 30
, we would write the following:
scala> collection.find("github_id" $gte 20 $lt 30).toList List[com.mongodb.casbah.Imports.DBObject] = List({ "_id" : { "$oid" : "562e922546f953739c43df0f"} , "github_id" : 23 , "login" : "takeo" , "repos" : ...
The operators provided by the DSL will automatically construct DBObject
instances. Using the DSL operators as much as possible generally leads to much more readable and maintainable code.
Going into the full details of the query DSL is beyond the scope of this chapter. You should find it quite easy to use. For a full list of the operators supported by the DSL, refer to the Casbah documentation at http://mongodb.github.io/casbah/3.0/reference/query_dsl/. We summarize the most important operators...