zenexity/ReactiveMongo — pull request #85 by osxhacker (2013-06-03 18:13:15+00:00)
Title: Added a Criteria DSL

This change-set includes a DSL for creating `find` selectors using Scala syntax. Right now, "ad hoc" criteria can be created that can become a `BSONWriter[Expression, BSONDocument]` implicitly. The test spec in UntypedCriteriaSpec.scala shows most of the operands supported and the BSONDocument instance emitted from the DSL.

I planned on doing a macros-based version which would roughly have the syntax of:

```scala
val q = criteria[SomeType] {
propertyA.in ("propertyA", "must", "be", "in", "SomeType")
}
```

But haven't done so yet (before doing that, I wanted to find out whether or not the DSL is desired at all :-)).