             .toArray()
         docs.should.eql [a: i]
 
+      it_ "should auto map projections with defaults", ->
+        DocWithDefaults = Db.document 'my_doc_with_defaults',
+          my_id: '_id'
+          attr: ['attr', 'no']
+
+        doc = new DocWithDefaults()
+        doc.my_id = 'hello'
+        doc.attr = 'yes'
+        doc.save()
+
+        docs = DocWithDefaults.find {my_id: 'hello'}, {attr: 1}
+            .toArray()
+        docs[0].attr.should.eql 'yes'
+
     describe "#findOne()", ->
       it_ "should work synchronously", ->
         doc = MyDoc.findOne _id: 'fibers'

          docs.should.eql [{a: i}]
          done()

  describe "#findOne()", ->
    it "should auto map queries", (done) ->
      SimpleDoc.findOne foo_id: 'simple_doc', (err, doc) ->

        doc.save()
        doc = MyDoc.findOne {my_id: i}, {my_id: 0, attr: 1}
        doc.should.eql a: i

      it_ "should auto map projections with defaults", ->
        DocWithDefaults = Db.document 'my_doc_with_defaults',
          my_id: '_id'
          attr: ['attr', 'no']

        doc = new DocWithDefaults()
        doc.my_id = 'hello'
        doc.attr = 'yes'
        doc.save()

        doc = DocWithDefaults.findOne {my_id: 'hello'}, {attr: 1}
        doc.attr.should.eql 'yes'

    describe "#count()", ->
      it_ "should work synchronously", ->
