Um einen Eintrag zu löschen, können Sie findOneAndRemove
verwenden Befehl - es gibt ein mongodb findAndModify
aus Befehl entfernen.
Findet ein übereinstimmendes Dokument, entfernt es und übergibt das gefundene Dokument (falls vorhanden) an den Rückruf.
let deleteBookmarkById = async (userId, bookmarkId) => {
const bookmark = await Bookmark.findOneAndRemove({
_id: bookmarkId,
userId: userId
});
if ( !bookmark ) {
throw new NotFoundError('Bookmark NOT_FOUND with id: ' + bookmarkId);
} else {
return true;
}
};
Eine Alternative ist die Verwendung von deleteOne()
Methode, die das erste Dokument löscht, das conditions
entspricht aus der Sammlung. Es gibt ein Objekt mit der Eigenschaft deletedCount
zurück Angabe, wie viele Dokumente gelöscht wurden:
let deleteBookmarkById = async (userId, bookmarkId) => {
const response = await Bookmark.deleteOne({
_id: bookmarkId,
userId: userId
});
if ( response.deletedCount !== 1 ) {
throw new NotFoundError('Bookmark NOT_FOUND with id: ' + bookmarkId);
} else {
return true;
}
};
Um mehrere Dokumente zu löschen, verwenden Sie den deleteMany
Funktion. Dadurch werden alle Dokumente gelöscht, die den im Filter angegebenen Bedingungen entsprechen. Es gibt ein Objekt mit der Eigenschaft deletedCount
zurück enthält die Anzahl der gelöschten Dokumente.
/**
* Delete bookmarks of a user, identified by userId
*/
let deleteBookmarksByUserId = async (userId) => {
await Bookmark.deleteMany({userId: userId});
return true;
};
Referenz -
https://mongoosejs.com/docs/api/model.html