Angularjs 如何使用angular追加表单字段以及如何在DB中插入值
我正在使用express和mongoose在mongodb中保存数据。 我正在创建节点API,下面是我的Mongo模式Angularjs 如何使用angular追加表单字段以及如何在DB中插入值,angularjs,arrays,node.js,insert,Angularjs,Arrays,Node.js,Insert,我正在使用express和mongoose在mongodb中保存数据。 我正在创建节点API,下面是我的Mongo模式 var bookSchema=new Schema({ subject_name:{type:String}, books:[{book_name:String, book_author:String}] }); 我的html视图如下所示 我想就一个主题名称附加多本书。所以我想知道如何使用Angularjs多次附加Books部分,以及如何将其值存储在
var bookSchema=new Schema({
subject_name:{type:String},
books:[{book_name:String, book_author:String}]
});
我的html视图如下所示
我想就一个主题名称附加多本书。所以我想知道如何使用Angularjs多次附加Books部分,以及如何将其值存储在mongodb中
我希望结果是这样的:
请告诉我怎么做
提前谢谢。嘿,你能检查一下这是否有帮助吗
SubjectBooks
是mongoose模式。按subjectName将新书追加到主题中的查询。如果要查找具有任何其他参数(如_id)的对象,可以更改update方法的第一个参数
节点代码在这里
已编辑
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
/*....mongoose connection creation code goes here...*/
var bookSchema=new Schema({subject_name:{type:String},books[{book_name:String, book_author:String}]
});
var SubjectBooks = mongoose.model('<collection_name>', bookSchema);
app.post('<URL mapping goes here>',function(req,res){
var subject = req.body; //You have to use body-parser
var subjectName = subject.subject_name;
var subjectModel = new SubjectBooks(subject);
subjectModel.save(function (err,mongRes) {
if(err){
res.send(err);
}
res.json(mongRes);
});
});
这将有助于将书籍推入主题书籍数组
你可以问这个问题
ng model
将不止一次,因此我需要创建其数组以在db中提交它。。。所以我想知道如何在中插入附加数据DB@SaurabhSharma需要节点代码或角度代码方面的帮助吗?您是否能够将所需的数据从UI发送到节点后端服务器?基本上,我需要Nodejs中的帮助。。。。当我只有一本书时,我可以在数据库中插入数据。。。。如果我有多本书,那么我需要帮助来插入数据。book\u name
和book\u author
html元素将在单击添加更多书
按钮时追加。嘿,我不想更新文档。当我在DB中发布新的新记录时,我希望执行与更新查询中的update
相同的操作,您需要的是{upsert:true}
标志。如果在数据库中找不到文档,则插入新文档。@SaurabhSharma我已经更新了我的解决方案。您能验证这是否是您所需要的吗。现在,如果有新的主题数据出现,它将插入。我缺少的一件事是$each修饰符,因为该修饰符数组被推到另一个包含多个books对象的对象中。嗨,我浏览了上面给出的代码并分析了它,以更新现有文档。但我没有现有的文件。我正在插入并使用post
方法。或者我不明白你想说什么。
app.controller("mainController",["$scope",'mainService',function($scope,mainService){
$scope.subjectBookCatalogue = {
subject_name: "",
books:[{
book_name:"",
book_author:""
}]
};
$scope.saveSubjects = function (data) {
mainService.saveSubjects(data).then(function(response){
console.log(response.data);
},function(response){
});
};
$scope.subjects = [];
$scope.fetchSubjects = function () {
mainService.getAllSubjects().then(function(response){
console.log(response.data);
$scope.subjects = response.data;
},function(response){
});
};
$scope.fetchSubjects();
$scope.submitForm = function(){
console.log($scope.subjectBookCatalogue);
$scope.saveSubjects($scope.subjectBookCatalogue);
}
}]);
app.factory("mainService",["$http",function($http){
return {
saveSubjects : function(data){
return $http({
method:"POST",
url: "http://localhost:3000/v1/subject/"+data.subject_name,
data:data,
headers: {
'Content-Type': 'application/json'
}
});
},
getAllSubjects : function(){
return $http({
method:"GET",
url:"http://localhost:3000/v1/subjects"
});
}
}
}]);