[英]MongoDB: Store array of models
I have declared following models: 我声明了以下模型:
Banana 香蕉
var banana = new mongoose.Schema({
src: {
type: String,
max: 1000,
default: "yabadaba"
});
User 用户
var user = new mongoose.Schema({
name: String,
bananas: [banana]
});
And I have problems inserting data to user collection. 而且在将数据插入用户集合时遇到问题。 Here's the code:
这是代码:
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();
}
And I it throws an error... 我抛出一个错误...
CastError: Cast to Array failed for value "..." at user.bananas.
CastError:在user.bananas中将值“ ...”转换为数组失败。 name: CastError, kind: 'Array', value: [Object], path: user.bananas, reason: [Object]
名称:CastError,类型:“数组”,值:[Object],路径:user.bananas,原因:[Object]
As I did not need to store bananas to db, I created a workaround for this. 由于不需要将香蕉存储到db,因此我为此创建了一种解决方法。 If it was necessary to store bananas separately, then it is possible to reference them via object id.
如果有必要单独存储香蕉,则可以通过对象ID引用它们。
So I removed Bananas model and modified User model as follows. 因此,我删除了Bananas模型并修改了User模型,如下所示。
User 用户
var user = new mongoose.Schema({
name: String,
bananas: [{
src: {
type: String,
max: 1000,
default: "yabadaba"
}
}]
});
I inserted values as follows: 我插入的值如下:
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();
}
And it seems to be working. 它似乎正在工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.