Mongoose如何将文档保存在数组中
Posted
技术标签:
【中文标题】Mongoose如何将文档保存在数组中【英文标题】:Mongoose how to save document inside an array 【发布时间】:2016-12-26 23:56:15 【问题描述】:我有一个看起来像这样的模型:
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"
]
我不明白出了什么问题。任何帮助表示赞赏。
【问题讨论】:
password
Schema 中的字段是字符串,但是你保存的是数字,也许这是个问题
不不,这只是我给出的一个例子,正在保存字符串
【参考方案1】:
您正在将对象分配给members
字段,但它是一个数组
var newTeam = new User(
team_code : 'CODE01',
members: [
email: req.body.email,
password: pass
] // <-- note the array braces []
);
【讨论】:
那么解决办法是什么?以上是关于Mongoose如何将文档保存在数组中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mongoose/Node.js 中同时保存多个文档?
Node.js Mongoose 如何保存新文档并向数组字段添加新值