Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$$hashKey must not start with '$' Deployd

Hi when i post to deployd i get this strange error in console

Object {name: "MongoError", message: "key $$hashKey must not start with '$'", status: 400}

code

 dpd.timesheetsdone.post({
      "projectId": $scope.projectId ,
      "formandSig":  $scope.signature,
      "timesheets": $scope.timesheets

    }, function (result, err) {
      if (err) return console.log(err);
      console.log(result, result.id);
    });

project id and signature is a simple string, timesheets is an array

if i replace scope.timesheets with

  [
    {
        "projectId": "1000",
        "date": "2015-05-15T22:00:00.000Z",
        "start": "25200"
    }
]

it works..

onsole.log(scope.timesheet... returns an object with same values + and hash key

like image 297
Stweet Avatar asked Jul 22 '26 20:07

Stweet


2 Answers

Angular automatically adds $$hashKey to all objects within your $scope.timesheets array. You can get rid of these by doing angular.toJson($scope.timesheets)

so your post would look like this:

 dpd.timesheetsdone.post({
  "projectId": $scope.projectId ,
  "formandSig":  $scope.signature,
  "timesheets": angular.toJson($scope.timesheets)
  ...
like image 177
Dan Moldovan Avatar answered Jul 24 '26 10:07

Dan Moldovan


Removed hash key parseing timesheets to JSON Dont know if this is the right / best way to remove hash keys?

      $scope.sign = function() {
   var sheets = angular.toJson($scope.timesheets);
   var sheets = JSON.parse(sheets);
    dpd.timesheetsdone.post({
      "projectId": $scope.projectId ,
      "formandSig":  $scope.signature,
      "timesheets": sheets

    }, function (result, err) {
      if (err) return console.log(err);
      console.log(result, result.id);
    });
  }
like image 34
Stweet Avatar answered Jul 24 '26 08:07

Stweet