Folks,

I wrote a view to join docs on a common attribute, making the reduce part store docs with the same key for both sides of the join.

This works for a few docs, but when I try to run the view on, say 100K docs, CouchDB's logs keep on saying: OS Process #Port<0.3458> Log :: function raised exception (new TypeError("keys is null", "undefined", 5))

The view is as such:

The Map part:
function (doc) {
  if (doc.joinside) {
    emit([ doc.joinkey, doc.joinside ], doc.feature);
  }
}

The Reduce part:
function (keys, values, rereduce) {
  var lefts = [];
  var rights = [];

  for (var i = 0; i < keys.length; i++) {
    if (keys[i][0][1] == "left") {
      lefts.push(values[i]);
    } else {
      rights.push(values[i]);
    }
  }

  return {
    lefts : lefts,
    rights : rights
  };
}

...as you may have guessed, I had to set the reduce_limit to false (it is supposed to run only at group_level=1..
At the moment, the view runs on an Ubuntu 14.04, CouchDB 1.5.0.

View's output with a few dozens docs looks fine:
lefts: [
    {
        type: "Feature",
        properties: {
            boundedBy: [
                147.2908,
                -32.1711,
                147.2908,
                -32.1711
            ],
            timeName: "2011",
            geometryID: "1",
            numberOfMeters: null,
            numberOfReadings: null
        },
        id: "CombinedMeterReadings.fid--3d7017ee_14733c15f9f_-2c90"
    },
    {
        type: "Feature",
        properties: {
            boundedBy: [
                147.2908,
                -32.1711,
                147.2908,
                -32.1711
            ],
            timeName: "2011",
            geometryID: "1",
            numberOfMeters: null,
            numberOfReadings: null
        },
        id: "CombinedMeterReadings.fid--3d7017ee_14733c15f9f_-2c89"
    },
    {
        type: "Feature",
        properties: {
            boundedBy: [
                147.2908,
                -32.1711,
                147.2908,
                -32.1711
            ],
            timeName: "2011",
            geometryID: "1",
            numberOfMeters: null,
            numberOfReadings: null
        },
        id: "CombinedMeterReadings.fid--3d7017ee_14733c15f9f_-2c82"
    }
],
rights: [
    {
        type: "Feature",
        geometry: null,
        properties: {
            geographicid: "1",
            geographicname: "New South Wales",
            property: "Unit",
            chronological: "ThreeMonth",
            daterange: "2014-01-01 to 2014-03-31",
            autscnt: 1284
        }
    }
]
}

Regards,

Luca Morandini
Data Architect - AURIN project
Melbourne eResearch Group
Department of Computing and Information Systems
University of Melbourne
Tel. +61 03 903 58 380
Skype: lmorandini

Reply via email to