Tôi biết cách ...
- Xóa một tài liệu duy nhất.
- Xóa chính bộ sưu tập.
- Xóa tất cả tài liệu khỏi bộ sưu tập với Mongo.
Nhưng tôi không biết cách xóa tất cả tài liệu khỏi bộ sưu tập bằng Mongoose. Tôi muốn thực hiện việc này khi người dùng nhấp vào một nút. Tôi giả sử rằng tôi cần gửi một yêu cầu AJAX đến một số điểm cuối và yêu cầu điểm cuối thực hiện việc xóa, nhưng tôi không biết cách xử lý việc xóa ở điểm cuối.
Trong ví dụ của tôi, tôi có một Datetime
bộ sưu tập và tôi muốn xóa tất cả các tài liệu khi người dùng nhấp vào một nút.
api / datetime / index.js
'use strict';
var express = require('express');
var controller = require('./datetime.controller');
var router = express.Router();
router.get('/', controller.index);
router.get('/:id', controller.show);
router.post('/', controller.create);
router.put('/:id', controller.update);
router.patch('/:id', controller.update);
router.delete('/:id', controller.destroy);
module.exports = router;
api / datetime / datetime.controller.js
'use strict';
var _ = require('lodash');
var Datetime = require('./datetime.model');
// Get list of datetimes
exports.index = function(req, res) {
Datetime.find(function (err, datetimes) {
if(err) { return handleError(res, err); }
return res.json(200, datetimes);
});
};
// Get a single datetime
exports.show = function(req, res) {
Datetime.findById(req.params.id, function (err, datetime) {
if(err) { return handleError(res, err); }
if(!datetime) { return res.send(404); }
return res.json(datetime);
});
};
// Creates a new datetime in the DB.
exports.create = function(req, res) {
Datetime.create(req.body, function(err, datetime) {
if(err) { return handleError(res, err); }
return res.json(201, datetime);
});
};
// Updates an existing datetime in the DB.
exports.update = function(req, res) {
if(req.body._id) { delete req.body._id; }
Datetime.findById(req.params.id, function (err, datetime) {
if (err) { return handleError(res, err); }
if(!datetime) { return res.send(404); }
var updated = _.merge(datetime, req.body);
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.json(200, datetime);
});
});
};
// Deletes a datetime from the DB.
exports.destroy = function(req, res) {
Datetime.findById(req.params.id, function (err, datetime) {
if(err) { return handleError(res, err); }
if(!datetime) { return res.send(404); }
datetime.remove(function(err) {
if(err) { return handleError(res, err); }
return res.send(204);
});
});
};
function handleError(res, err) {
return res.send(500, err);
}