我已宣布以下模型:
香蕉
var banana = new mongoose.Schema({
src: {
type: String,
max: 1000,
default: "yabadaba"
});
用户
var user = new mongoose.Schema({
name: String,
bananas: [banana]
});
我在向用户集合中插入数据时遇到问题。这是代码:
var data = [{
name: "Batman",
bananas: [
new banana({src: "nananana"}),
new banana({src: "nana"})
]
}, {
name: "Robin",
bananas: [
new banana({src: "meh"})
]
}];
for(var i=0, arrLen=data.length; i<arrLen; i++){
var item = new User(data[i]);
item.save();
}
我发出错误......
CastError:Cast to Array因值而失败&#34; ...&#34;在user.bananas。 name:CastError, 善良:&#39;阵列&#39;, 值:[对象], 路径:user.bananas, 原因:[对象]
答案 0 :(得分:0)
由于我不需要将香蕉存储到db,我为此创建了一个解决方法。如果有必要单独存储香蕉,则可以通过对象ID引用它们。
所以我删除了Bananas模型并修改了User模型如下。
用户强>
var user = new mongoose.Schema({
name: String,
bananas: [{
src: {
type: String,
max: 1000,
default: "yabadaba"
}
}]
});
我按如下方式插入值:
var data = [{
name: "Batman",
bananas: [
{src: "nananana"},
{src: "nana")
]
}, {
name: "Robin",
bananas: [
{src: "meh"}
]
}];
for(var i=0, arrLen=data.length; i<arrLen; i++){
var item = new User(data[i]);
item.save();
}
它似乎正在发挥作用。