Wie können Sie alle Dokumente aus einer Sammlung mit Mongoose entfernen?
Ich weiß, wie ich...
- Entfernen Sie ein einzelnes Dokument.
- Entfernen Sie die Sammlung selbst.
- Entfernen Sie alle Dokumente aus der Sammlung mit "Mongo".
Aber ich weiß nicht, wie man entfernen Sie alle Dokumente aus der Sammlung mit Mungo. Ich möchte das wenn der Benutzer auf eine Schaltfläche klickt. Ich gehe davon aus, dass ich zu senden Sie eine AJAX-Anfrage zu einigen Endpunkt und dem Endpunkt tun, die Entfernung, aber ich weiß nicht, wie zu handhaben die Entfernung auf dem Endpunkt.
In meinem Beispiel habe ich eine Datetime
Sammlung, und ich möchte Sie entfernen Sie alle Dokumente, wenn der Benutzer auf eine Schaltfläche klickt.
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);
}
Kommentar zu dem Problem
Sie müssen erstellen Sie eine route löschen mit ajax löschen. zeigen Sie mir den html-code-Schaltfläche.
nun, ich kann helfen u.. nur eine Sekunde, ich werde den code.
zeigen Sie mir den html-button, bitte.
@MrBearAndBear - ich habe nicht geschrieben, den code für den button noch. Die Schaltfläche sendet eine AJAX-Anfrage an den endpoint - ich muss nur wissen, wie die Struktur der Endpunkt.
überprüfen Sie heraus meine Antwort @AdamZerner
InformationsquelleAutor der Frage Adam Zerner | 2015-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
DateTime.remove({}, callback)
Das leere Objekt wird mit allen von Ihnen.InformationsquelleAutor der Antwort cdbajorin
In MongoDB, der db.Sammlung.die remove () - Methode löscht Dokumente aus einer Sammlung. Sie können entfernen Sie alle Dokumente aus einer Sammlung, entfernen Sie alle Dokumente, die match-Bedingung, oder zu begrenzen, den Betrieb zu entfernen, die nur ein einzelnes Dokument.
Quelle: Mongodb.
Wenn Sie mit mongo sheel, nur:
In Ihrem Fall, die Sie benötigen:
Du nicht zeigen Sie mir den löschen-button, damit diese Schaltfläche ist nur ein Beispiel:
Ändern Sie die controller:
Einfügen dieses ajax delete-Methode in der client js-Datei:
InformationsquelleAutor der Antwort
Es gibt mehrere Werkzeuge, mit build-in operators for MongoDB.
Mac: https://github.com/jeromelebel/MongoHub-Mac
Windows: https://robomongo.org
Seine schnell und einfach 🙂
InformationsquelleAutor der Antwort Daniel Beller