【问题标题】:How to store empty array in mongodb如何在mongodb中存储空数组
【发布时间】:2022-01-06 17:41:12
【问题描述】:

我想在用户模式的朋友键中存储空数组。但是,mongoose 不会让我添加空的朋友数组。

这是我的用户架构

const userSchema = mongoose.Schema({
  firstName: {
    type: String,
    required: true,
  },
  lastName: {
    type: String,
    required: true,
  },
  userName: {
    type: String,
    unique: true,
    required: true,
  },
  email: {
    type: String,
    required: true,
    unique: true,
    validate: [validator.isEmail, "Please enter a valid Email"],
  },
  password: {
    type: String,
    required: true,
    minlength: [6, "Password must be at least 6 characters"],
  },
  friends: [
    {
      type: mongoose.Schema.Types.ObjectId,
      ref: 'User'
      unique: true,
    },
  ],
});

这是我从数组中提取数据并保存空数组的代码

const index = req.user.friends.findIndex(friend => friend.toString() === req.params.id);
  
  if(index !== -1){
    req.user.friends.splice(index, 1);
  }else{ 
    req.user.friends.push(req.params.id);
  }

    const user = new User(req.user);

    await user.save({validateBeforeSave: false});
    return res.json({success: true});

【问题讨论】:

    标签: javascript node.js arrays mongodb mongoose


    【解决方案1】:

    改为指定默认值

    friends: [
        {
          type: mongoose.Schema.Types.ObjectId,
          ref: 'User'
          unique: true,
          default: []
        },
      ],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      相关资源
      最近更新 更多