Я пытаюсь удалить документ из MongoDB с помощью nodeJS.MongoDB _id length as as 25
Мой поток кода выглядит следующим образом: 1. Пользователь может удалить конкретного учащегося. 2.So Я вытащил все документы студента из БД и сохранил в объекте студентов. 3. Пользователь может фильтровать поиск с предоставленным текстовым полем и может выбрать конкретного учащегося и может удалить его.
Пожалуйста, найдите ниже UI:
HTML-страницы, как показано ниже:
<h2 align="center">Delete Student</h2>
<div ng-controller="deleteStudentController">
<form ng-submit="deleteStudent()">
Student Name:<input type="text" letters-only ng-model="searchName"/><br>
<div ng-repeat="student in students | filter:searchName" ng-show="searchName.length">
<input type="radio" ng-model="$parent.studentRadio" name="studentRadio" value="{{student._id}}"/>{{student | formatter}}
</div>
<input type="submit" value="Delete Student"/>
{{output}}
</form>
</div>
Контроллер angularJS связан с пользовательским интерфейсом, как показано ниже:
mainApp.controller("deleteStudentController", function($scope,$http) {
var resData = {};
$scope.student = {};
var urlGet = "/students/all";
$http.get(urlGet)
.then(function(response) {
$scope.students = angular.fromJson(response.data);
});
$scope.deleteStudent = function(){
var urlDelete = "/students/remove:"+$scope.studentRadio;
$http.delete(urlDelete)
.success(function(response, status, headers, config){
$scope.output = "Student successfully deleted.";
})
.error(function(response, status, headers, config){
$scope.output = "Error in processing. Please try again.";
});
}
});
Какой inturn вызывает контроллер узла:
router.delete("/remove:studId", function(req,res){
Students.remove(req.params.studId, function(err) {
if (err) {
throw err;
}
else {
var respOut = "Student deleted";
res.send(respOut);
}
});
});
Внутри контроллера есть объект студенческой модели, в котором производится связь БД. Я использовал mongodb.ObjectID.createFromHexString() метод для создания ObjectId от значения _ID, что я получил от DB
студента кода модели для удаления документа:
exports.remove = function(studentId, cb) {
var collection = db.get().collection('students');
console.log("_id"+studentId);
console.log("Length---->"+studentId.length);
collection.remove({_id: mongodb.ObjectID.createFromHexString(studentId)}, function(err) {
if (err) {
throw err;
}
else {
cb(err);
console.log("Record deleted.");
}
});
}
Но ее давая ошибку в «Ошибка: аргумент, переданный в, должен быть одной строкой из 12 байтов или строкой из 24 шестнадцатеричных символов». Поэтому я попытался записать значение _id, которое я получил из документа студента DB и его длины. Удивительно, но я получаю длину «25».
Пожалуйста, найдите ниже консоли, что я получаю:
_id: 576aba09090560f80bd2caaa длина ----> 25
Любая идея об этой проблеме? Пожалуйста, помогите .....
Длина _id выше 24. Что такое 'studentId'? Как вы его получите? – freakish
есть. Но я получаю длину как 25. Я сделал консоль: console.log («Длина ---->» + studentId.length); Не знаю, почему его предоставление как длина 25. :( –
@JohnyHK Я обновил свой вопрос. Не могли бы вы посмотреть? Пожалуйста, дайте мне знать, если мне нужно предоставить что-нибудь. –