如何使用mongoose和node js在mongodb中不插入不需要的字段数据的情况下创建文档?

问题描述 投票:0回答:1

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间以来,它在不插入电子邮件ID的情况下运作良好。但是在将数据保存到集合中时,它给了我类似“ 无法读取未定义的属性'保存'的属性>>”的错误。谁能帮我解决这个问题。下面是模型架构代码。

var usersSchema = new mongoose.Schema({
  username : {type: String, required: true},
  password : {type: String, required: true},
  user_phone_number: {type: String, required: true, unique: true},
  emailid  : {type: String, required: false, unique: true},
  status   : {type: Boolean, required: false, default: 1}
},
{
  timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'},
  versionKey:0
});

服务代码为,

createUser: async (payload) => {
        let err, err1, newUser, userData;
        [err,newUser] = await to(app.models.Users.create({
            username: payload.username,
            user_phone_number: payload.phone_number,
            emailid: payload.email?payload.email:"",
            password:payload.password
        }));
        [err1,userData]=await to(newUser.save());
        if(err || err1) TE("Error in creating a user");
        return userData;
    },

我已经为用户数据创建了一个集合。我有一个可选字段“ emailid”。如果用户提供了电子邮件,我已经编写了存储电子邮件的代码。否则,它应该使用空字符串,例如“”。一段时间了...

node.js mongodb mongoose
1个回答
0
投票

您正在尝试保存newUser,然后检查是否发生错误。如果err不为null,则需要继续newUser.save(),否则将引发错误。

© www.soinside.com 2019 - 2024. All rights reserved.