【问题标题】:MeanJS MongoDb insert issueMeanJS MongoDb 插入问题
【发布时间】:2015-08-04 11:28:57
【问题描述】:

我正在使用 MEANJS 创建一个应用程序。我有一个这样定义的猫鼬模式:

 var UserdetailSchema = new Schema({
    fullName: {
        type: String,
        trim: true
    },
    userName: {
        type: String,
        trim: true
        },
    mobile: {
        type: String,
        default: '',
        trim: true
    },
    address: {
        type: String,
        trim: true
    },
    suburb: {
        type: String
        },
    user: {
        type: Schema.ObjectId,
        ref: 'User'
    }
    });

mongoose.model('Userdetail', UserdetailSchema);

我想要实现的是在登录用户被重定向到编辑视图以更新 userdetails 架构中的“移动、郊区、地址”等其余信息之后。

这是我的控制器。我已将默认 create() 方法更改为以下内容:一旦插入的第一步完成,我就会重定向到编辑它。

// Create new Userdetail for current user
    function create(FullName,UserName) {
        // Create new Userdetail object
        var userdetail = new Userdetails ({
            fullName: FullName,
            userName: UserName
        });

        // Redirect after save
        userdetail.$save(function(response) {
            $location.path('userdetails/' + response._id+'/edit');
            console.log(response._id);
            // Clear form fields
            //$scope.name = '';
        }, function(errorResponse) {
            console.log(errorResponse.data.message);
            $scope.error = errorResponse.data.message;
        });
    };

要创建用户详细信息,我只插入 fullName 和 userName 作为第一步,稍后再更新。

问题是,它只允许我插入 1 个用户详细信息,并且如果我尝试插入另一个用户的另一个用户详细信息。尽管架构中没有名称,但它会给出错误“名称已存在”。

用于创建用户详细信息的服务器端代码

/**
 * Create a Userdetail
 */
    exports.create = function(req, res) {
    var userdetail = new Userdetail(req.body);
    userdetail.user = req.user;

    userdetail.save(function(err) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
            res.jsonp(userdetail);
        }
    });
};

【问题讨论】:

  • 您到底会出现什么错误,并显示您正在执行插入的代码。仅查看您的架构无助于识别问题。
  • 感谢“ThrowsException”的回复,我已经包含了我更新的 create() 方法。我希望它现在有所帮助。
  • 你的服务器端代码怎么样。您的客户端不是试图写入数据库的对象。
  • 我没有对服务器端进行任何更改。我已经包含了我的服务器端创建方法代码。
  • 从外壳中删除我的集合“userdetails”并尝试再次插入后,我得到了它。我点击了这个链接stackoverflow.com/questions/24878847/…。更多的是 MongoDB 问题。

标签: node.js mongodb mean-stack


【解决方案1】:

从外壳中删除我的集合“userdetails”并尝试再次插入后,我得到了它。我点击了这个链接Mongodb- Add unique index on an existing collection。更多的是 MongoDB 问题。

【讨论】:

    猜你喜欢
    • 2020-01-31
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多