Two $unwind stages for two document fields in same pipeline

It will be easier to help you if you supply sample documents.

You may have as many unwind stage as you have array in your documents. Example:

// Starting with the following collection with 2 arrays
c.find()
{ _id: 1, a: [ 1, 2, 3 ], b: [ 4, 5, 6 ] }

// A pipeline with 2 unwind stages
c.aggregate(  [ { '$unwind': '$a' } , { '$unwind': '$b' } ] )

// Gives the following
{ _id: 1, a: 1, b: 4 }
{ _id: 1, a: 1, b: 5 }
{ _id: 1, a: 1, b: 6 }
{ _id: 1, a: 2, b: 4 }
{ _id: 1, a: 2, b: 5 }
{ _id: 1, a: 2, b: 6 }
{ _id: 1, a: 3, b: 4 }
{ _id: 1, a: 3, b: 5 }
{ _id: 1, a: 3, b: 6 }