Why the returned values are empty? It's about Job-Collection

I am using Job-Collection package. And in processJobs, I got a problem.

JCJobs.processJobs('report',
   function (job, cb) {
      // This will only be called if a
      // 'sendEmail' job is obtained
      var rep= genReport();
      Reports.insert({
         category: 0,
         content: rep
      });
      job.done('done!');
      cb();
   }
);

function genReport(){
   var arr=[];
   SomeCollection.find({}).forEach(function(o){
      var o2=processO(o); //process o some way, and returns a new object.
      arr.push(o2);
   });
   return arr;
}

Reports is a collection containing two fields category and content.
The processJobs was called. But you will find the value of the field content is an Array in which every element is empty.
Please help me out.

What values do you see when you log “o” and “o2”?

SomeCollection.find({}).forEach(function (o) {
  console.log(o);
  var o2=processO(o);
  console.log(o2);
  arr.push(o2);
});

Thanks , @hwillson.
I did a test. Reports is a collection and is attached with a schema from package Simple-Schema.
The definition is:


{
   category:{
      type:Number
   },
   content:{
      type:[Object]
   }
}

I removed the schema attach, and the script runs well now. But I am confused with it.