Angularjs Angular不发送对象中的对象
我将此JSON与Angular.js一起发送到node.js/express.js服务:Angularjs Angular不发送对象中的对象,angularjs,node.js,mongodb,express,mongoose,Angularjs,Node.js,Mongodb,Express,Mongoose,我将此JSON与Angular.js一起发送到node.js/express.js服务: { "name": "MyGuitar", "type": "electric", "userid": "123", "likes": 0, "dislike": 0, "guitarParts": { "body": { "material": "/content/img/hout.jpg", "_id": "5566d6af274e63cf4f790858", "co
{
"name": "MyGuitar",
"type": "electric",
"userid": "123",
"likes": 0,
"dislike": 0,
"guitarParts": {
"body": {
"material": "/content/img/hout.jpg",
"_id": "5566d6af274e63cf4f790858",
"color": "#921d1d"
},
"head": {
},
"neck": {
"material": "/content/img/hout.jpg",
"_id": "556d9beed90b983527c684be",
"color": "#46921d"
},
"frets": {
},
"pickup": {
},
"bridge": {
},
"buttons": {
}
}
}
吉他部件不保存在MongoDB数据库中。
Mongoose插入以下内容:
Mongoose:guitars.insert({name:'myGuitars',type:'electric',userid:'123',likes:0,_-id:ObjectId(“557023AF9B321B541D416E”),guitarParts:[],_-v:0})
这是我的猫鼬模型:
guitarPart = new Schema({
id: { type: String, required: true },
color: { type: String, required: true },
material: { type: String, required: true },
x: { type: Number, required: false },
y: { type: Number, required: false },
width: { type: Number, required: false },
height: { type: Number, required: false},
});
guitarParts = new Schema({
body: [guitarPart],
neck: [guitarPart],
head: [guitarPart],
bridge: [guitarPart],
frets: [guitarPart],
pickup: [guitarPart],
buttons: [guitarPart]
});
guitar = new Schema({
name: { type: String, required: true, unique: false },
type: { type: String, required: true },
userid: { type: String },
likes: { type: Number },
dislikes: { type: Number },
guitarParts: [guitarParts],
kidsguitar: { type: Boolean },
lefthanded: { type: Boolean },
assemblykit: { type: Boolean }
},
{
collection: 'guitars'
});
我不知道出了什么问题。有什么想法吗?根据mongoose的子文档说明:子文档是具有自己模式的文档,它们是父文档数组的元素 在您提供的模式中:guitarParts不是数组,它是一个对象,guitarPart不是数组,它也是一个对象。这就是为什么它不是储蓄 因此,正确的模式建模方法是:
var guitarDefinition = {
_id: {type: String, required: true},
color: {type: String, required: true},
material: {type: String, required: true},
x: Number,
y: Number,
width: Number,
heigth: Number
};
var guitarSchema = Schema({
name: { type: String, required: true, unique: false },
type: { type: String, required: true },
userid: String,
likes: Number,
dislikes: Number ,
kidsguitar: Boolean,
lefthanded: Boolean ,
assemblykit: Boolean,
guitarParts: {
body: guitarDefinition,
neck: guitarDefinition,
head: guitarDefinition,
bridge: guitarDefinition,
frets: guitarDefinition,
pickup: guitarDefinition,
buttons: guitarDefinition
}
});
实际上,我已经在我的计算机上运行了,它正在保存。你可以在这里看到我的完整代码:根据mongoose的子文档说明:子文档是具有自己模式的文档,它们是父文档数组的元素 在您提供的模式中:guitarParts不是数组,它是一个对象,guitarPart不是数组,它也是一个对象。这就是为什么它不是储蓄 因此,正确的模式建模方法是:
var guitarDefinition = {
_id: {type: String, required: true},
color: {type: String, required: true},
material: {type: String, required: true},
x: Number,
y: Number,
width: Number,
heigth: Number
};
var guitarSchema = Schema({
name: { type: String, required: true, unique: false },
type: { type: String, required: true },
userid: String,
likes: Number,
dislikes: Number ,
kidsguitar: Boolean,
lefthanded: Boolean ,
assemblykit: Boolean,
guitarParts: {
body: guitarDefinition,
neck: guitarDefinition,
head: guitarDefinition,
bridge: guitarDefinition,
frets: guitarDefinition,
pickup: guitarDefinition,
buttons: guitarDefinition
}
});
事实上,我已经在我的电脑中运行,它正在保存。你可以在这里看到我的完整代码:打字
吉他手
->吉他手
?谢谢你的回答。我试过了,但还是不起作用。打字错误吉他手->吉他手?谢谢你的回答。我试过了,但还是不起作用。打字错误吉他手->吉他手?谢谢你的回答。我试过了,但还是不行。