code: function bodyWithIds (body, idColKey) {
    if (body.length === 0) {
      return
    }
    let counter = 0
    let usedIds = []
    body.forEach(row => {
      let idValue = getDataFromDotNotation(idColKey, row)
      if ((idValue === undefined || idValue === null) && (row[idColKey] === undefined || row[idColKey] === null)) {
        idValue = '_smart_' + counter++
      }
      if (usedIds.indexOf(idValue) !== -1) {
        idValue = String(idValue) + '-' + counter++
      }
      row._id = idValue
      usedIds.push(idValue)
      Object.keys(row).forEach(p => {
        if (p.indexOf(' ') !== -1 || p.indexOf('-') !== -1) {
          let camelized = undashCamelize(p)
          let v = row[p]
          delete row[p]
          row[camelized] = v
        }
      })
    })
    return body
  }
docs: rawBody is an array in the form
  [ { 'col 1': 'value 1', 'col 2': 'value 2', ... [_id: 'some id'] },
  { 'col 1': 'value 3', 'col 2': 'value 4', ... [_id: 'some other id'] },
  ... ]
  Columns can be omitted and _ids can be omitted too.