示例#1
0
    def test_map_reduce_with_inline_output(self):
        # raises an exception when output is inline

        collection = self.test_doc._get_collection()
        qs = QuerySet(self.test_doc, collection)

        with self.assertRaises(OperationError):
            yield from qs.map_reduce('mapf', 'reducef', output='inline')
示例#2
0
    def test_get_map_reduce(self):
        for i in range(5):
            d = self.test_doc(a=str(i))
            yield from d.save()

        collection = self.test_doc._get_collection()
        qs = QuerySet(self.test_doc, collection)

        mapf = """
function(){
  emit(this.a, 1);
}
"""
        reducef = """
function(key, values){
  return Array.sum(values)
}
"""
        ret = yield from qs.map_reduce(mapf, reducef, {'merge': 'bla'})
        self.assertEqual(ret['counts']['input'], 5)