Я подключаю AngularJS к MongoLab и пытаюсь обновить коллекцию «users».
Служба ресурсов AngularJS:
angular.module("myApp.services", ["ngResource"])
.constant({
DB_URL: "https://api.mongolab.com/api/1/databases/mydb/collections/users/:id",
API_KEY: "[SOME_RANDOM_KEY]"
})
.factory("UsersService", ["$resource", "DB_URL", "API_KEY", function($resource, DB_URL, API_KEY) {
return $resource(DB_URL, { apiKey: API_KEY, id: "@_id.$oid" }, { update: { method: "PUT" }});
}]);
Вот как я пытаюсь обновить свою коллекцию пользователей:
angular.module("myApp", ["myApp.services"])
.controller("AppController", ["$scope", "UsersService", function($scope, UsersService) {
$scope.users = [];
$scope.getAllUsers = function() {
$scope.users = UsersService.query();
};
$scope.updateUser = function(user) { // user: firstName, lastName, email
//delete user._id;
UsersService.update({}, user, function() {
$scope.users = UsersService.query();
console.log("Users updated successfully");
}, function() {
console.log("Some problems updating the user", arguments);
});
};
}]);
Когда я пытаюсь обновить информацию о пользователе, выдается исключение:
{ "message" : "cannot change _id of a document old:{ _id: ObjectId('[SOME_RANDOM_KEY]'), firstName: \"Anup\", lastName: \"Vasudeva\", email: \"[email protected]\" } new:{ _id: {}, firstName: \"Anup\", lastName: \"Vasudeva\", email: \"[email protected]\" }"
Я новичок в MongoDB, поэтому не понимаю, почему он создает пустой объект _id для нового экземпляра пользователя?