Mongoose如何在数组中保存文档

时间:2016-08-19 18:22:37

标签: arrays node.js mongodb mongoose mongoose-schema

我的模型看起来像这样:

user.js的

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var memberSchema = new Schema({
        email: { 
            type: String, 
            required: true, 
            unique: true 
        },
        password: { 
            type: String, 
            required: true,
            min: 8
        }
});

var userSchemaPrimary = new Schema({
    team_code : {
        type: String, 
        required: true, 
        unique: true 
    },
    members:[memberSchema],
});
var User = mongoose.model('User', userSchemaPrimary);

module.exports = User;

这就是我试图保存的方式

var User = require('../models/user');
var newTeam = new User({
    team_code : 'CODE01',
    members:
        {
            email: req.body.email,
            password: pass
        }
});

newTeam.save(function(err) {
    if (err) throw err;
    console.log('User saved successfully!');
    return res.send("Done");
});

执行时,会抛出模型验证错误。 好吧,我试图在没有数组文档的情况下保存数据,然后成功保存。但是当我尝试保存数组(数组“成员”)时,它会抛出验证错误。

我想

以下列方式存储数据:

{
   team_code: "CODE01",
   members: [
      {
         email: "test01@email.com",
         password: "11111111"
      },
      {
         email: "test02@email.com",
         password: "22222222"
      }
      {
         email: "test03@email.com",
         password: "33333333"
      }
   ]
}

我不明白出了什么问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您正在将对象分配给members字段,但它是一个数组

var newTeam = new User({
    team_code : 'CODE01',
    members: [{
            email: req.body.email,
            password: pass
    }] // <-- note the array braces []
});