Javascript Mongoose模式无法创建具有给定属性的正确对象
Mongoose未保存正确的架构。新创建的对象中缺少属性 我的模式如下:Javascript Mongoose模式无法创建具有给定属性的正确对象,javascript,mongoose,mongoose-schema,Javascript,Mongoose,Mongoose Schema,Mongoose未保存正确的架构。新创建的对象中缺少属性 我的模式如下: const ProfileSchema = new Schema({ user: { type: Schema.Types.ObjectId, ref: "users" }, handle: { type: String, required: true, max: 40 }, dateOfBirth: { type: Date }, expense
const ProfileSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: "users"
},
handle: {
type: String,
required: true,
max: 40
},
dateOfBirth: {
type: Date
},
expenses: {
tyep: String
},
income: {
type: String
},
experience: [
{
title: {
type: String
}
}
],
education: [
{
school: {
type: String
}
}
],
partner: {
partnerIncome: {
type: String
},
partnerExpenses: {
tyep: String
}
},
date: {
type: Date,
default: Date.now
}
});
{
"user": "5cbf0d03b6a1d33d085c5a41",
"handle": "aaaaaaaaaaaaa",
"dateOfBirth": "02/02/2019",
"income": "600",
"expenses": "300",
"partnerIncome": "900",
"partnerExpenses": "200"
}
创建新对象的代码是:
new Profile(profileFields)
.save()
.then(profile => {
//res.json(profileFields);
res.json(profile);
})
.catch(err => {
res.json(err);
});
profileFeild中的数据如下:
const ProfileSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: "users"
},
handle: {
type: String,
required: true,
max: 40
},
dateOfBirth: {
type: Date
},
expenses: {
tyep: String
},
income: {
type: String
},
experience: [
{
title: {
type: String
}
}
],
education: [
{
school: {
type: String
}
}
],
partner: {
partnerIncome: {
type: String
},
partnerExpenses: {
tyep: String
}
},
date: {
type: Date,
default: Date.now
}
});
{
"user": "5cbf0d03b6a1d33d085c5a41",
"handle": "aaaaaaaaaaaaa",
"dateOfBirth": "02/02/2019",
"income": "600",
"expenses": "300",
"partnerIncome": "900",
"partnerExpenses": "200"
}
该帖子已成功另存为
{
"partner": {
"partnerIncome": "900"
},
"_id": "5cbfd9b2dc38893364f25063",
"user": "5cbf0d03b6a1d33d085c5a41",
"handle": "aaaaaaaaaaaaa",
"dateOfBirth": "2019-02-01T13:00:00.000Z",
"income": "600",
"experience": [],
"education": [],
"date": "2019-04-24T03:36:18.643Z",
"__v": 0
}
我们可以看到支出和合作伙伴支出缺失。这是怎么发生的?如何解决这个问题如果我使用findOneAndUpdate进行更新,然后发送相同的profileFields数据,则所有字段将显示如下所示(这是第一次出现的预期结果) 顺便说一下,更新代码如下:
Profile.findOneAndUpdate(
{ user: req.user.id },
{ $set: profileFields },
{ new: true }
).then(profile => res.json(profile));
谢谢您的帮助。有打字错误
expenses: {
tyep: String
},
另一个是
partnerExpenses: {
tyep: String
}
请你把它修好后再试一下。有打字错误
expenses: {
tyep: String
},
另一个是
partnerExpenses: {
tyep: String
}
请您在修复后再试。首先,让我们将合作伙伴收入、合作伙伴费用、费用和收入设置为整数,或模式定义中的数字 并在
expenses:{
tyep: String//must be spelt type
}
and
partnerExpenses:{
tyep: String//must be spelt type
}
首先,让我们将Partner income、Partner expenses、expenses和income设置为整数或模式定义中的数字 并在
expenses:{
tyep: String//must be spelt type
}
and
partnerExpenses:{
tyep: String//must be spelt type
}