使用一个AngularJS请求从mongoDB中删除多个文档

时间:2015-09-22 19:31:26

标签: angularjs node.js mongodb express

我正在开发一个MEAN堆栈应用程序,它本质上提供了一个界面,使我可以更直接地浏览我的数据库。我是表达/ Node.js / AngularJS的新手,但我正在寻找一种方法,通过单个AngularJS $ http请求从我的MongoDB中删除多个项目到我的express / Node.js服务器。

以下工作用于从我的数据库中删除单个元素,但我想要做的实际上是传递一个对象数组以从我的数据库中删除,因此我不必进行多个请求并加快进程。有没有办法做到这一点?

$http.delete('./api/db/'+opp_id)
    .success(function(data){
        $scope.items = data;
      })
      .error(function(data){
        console.log("ERROR: " + data);
      });

1 个答案:

答案 0 :(得分:2)

如果您还调整API以处理数组

,这应该可行
var idArray = [1,2,3,4,5,6];

$scope.delete = function(idArray) {
        $http({ url: 'domain/resource', 
                method: 'DELETE', 
                data: {ids: idArray}, 
                headers: {"Content-Type": "application/json;charset=utf-8"}
        }).then(function(res) {
            console.log(res.data);
        }, function(error) {
            console.log(error);
        });
    };

但是你必须知道某些应用服务器不允许使用HTTP DELETE主体;

来源:Is an entity body allowed for an HTTP DELETE request?

您还可以在查询参数中将ID数组作为逗号分隔列表传递。

所以你也应该尝试这种方法:

    var idArray = [1,2,3,4,5,6];

    $http(
      method: 'DELETE',
      url: '/items',
      params: {
        id: JSON.stringify(idArray) 
      }
    )