【问题标题】:How to add an array into mongodb by uing node js and angularjs?如何使用 node js 和 angularjs 将数组添加到 mongodb?
【发布时间】:2017-06-06 17:09:57
【问题描述】:

我的代码:

var user = new User({
    fullname: req.body.fullname,
    mobile:req.body.mobile,
    email: req.body.email,
    gender: req.body.gender,
    state: req.body.state,
    city: req.body.city,
    pincode:req.body.pincode,
    college: req.body.college,
    course: req.body.course,
    descipline: req.body.descipline,
    semester: req.body.semester,
    university: req.body.university,
    month:req.body.month,
    worklocation:req.body.worklocation,
    members:members
});

user.save(function(err, data) {
    if(err) {
        return next(err);
    }
    res.status(201).json(data);
});

【问题讨论】:

  • 您想在哪里添加数组?
  • 你能清楚地解释你的问题吗?
  • 我想将一个包含元素的数组添加到 mongodb 数据库中。我使用 nodejs 作为中间件,使用 angular 进行查看。
  • var UserSchema = mongoose.Schema({ 全名:字符串,手机:字符串,电子邮件:字符串,性别:字符串,州:字符串,城市:字符串,密码:字符串,大学:字符串,课程: String,学科:String,学期:String,大学:String,月份:String,工作地点:String,summery:String,成员:[{degree_name:String,degree_subject:String}] });这是我的架构

标签: angularjs node.js mongodb


【解决方案1】:

您可以直接在您的架构中分配对象的成员数组

var members = [{degree_name:'xxx', degree_subject: 'yyy'},
              {degree_name:'xxx1', degree_subject: 'yyy1'}];

var user = new User({
            fullname: req.body.fullname,
            .....
            members:members
        });

如果您从 Angular 发送相同的属性名称,那么您可以像 new User(req.body) 一样使用 req.body

这样您就可以从 UI 中作为请求正文发送

$scope.user = {
            fullname: 'xx',
            mobile: 'yy',
            members: [{degree_name:'xxx', degree_subject: 'yyy'},
                  {degree_name:'xxx1', degree_subject: 'yyy1'}]
};

那么在mongoose中可以使用like

var user = new User(req.body); 

然后根据你的属性名自动映射。

如果 req.body 属性名称与架构有任何不同,则重新分配该属性。

var user = new User(req.body); 
user.course = req.body.courseName

角度代码:

$scope.members = [{degree_name:'xxx', degree_subject: 'yyy'},
              {degree_name:'xxx1', degree_subject: 'yyy1'}];
  $scope.registerDetails = function() {
    $scope.user.members = $scope.members;
    $http.post('/api', $scope.user).success(function(data) {
      // your code
    }).error(function(status) {
      // your code
    });
  };

【讨论】:

  • 我想将数据通过角度保存到 mongodb 作为数组??
  • 是的,您可以将成员数据作为对象数组发送@AswaniVs
  • 你能举出完整的例子吗?
  • var app= angular.module('app', ['ngMaterial','ngMessages']); app.controller('AppCntrl', function($scope, $http, $location) { $scope.title = "Register"; $scope.members=[]; $scope.registerDetails = function() { $http.post ('/api',$scope.user).success(function(data) { $scope.user = data; $location.path('/'); alert('注册成功!'); }).error( function(status) { alert('输入错误。请检查!'); console.log('Error: ' + status); }); };
  • 你能给出完整的项目吗
猜你喜欢
  • 1970-01-01
  • 2021-01-27
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多