If you reverse your compound key then you'll be able to do the select, keys sort from left to right in Couchbase.
function (doc, meta) {
if(meta.type == "json") {
if(doc.start_date && doc.source) {
emit([doc.source,dateToArray(doc.start_date)],null);
}
}
}
To select all documents with a source value of: "s_source1" since a date in 2010 until the present day you'd have your keys like so:
Start_Key: ["s_source1",[2010,2,18,15,35,0]]
End_key: ["s_source1",[2014,2,18,15,35,0]]
This question on the Couchbase website has some fantastic explanations of compound key sorting, I'd thoroughly recommend reading it: http://www.couchbase.com/communities/q-and-a/couchbase-view-composite-keys
Plus here is an informative section from the official documentation: http://docs.couchbase.com/couchbase-manual-2.0/#selecting-information