MongoDB: 存储模型数组
MongoDB: Store array of models
我已声明以下型号:
香蕉
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 failed for value "..." at user.bananas.
name: CastError,
kind: 'Array',
value: [Object],
path: user.bananas,
reason: [Object]
因为我不需要将香蕉存储到数据库中,所以我为此创建了一个解决方法。如果需要单独存储香蕉,那么可以通过对象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();
}
它似乎起作用了。
我已声明以下型号:
香蕉
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 failed for value "..." at user.bananas. name: CastError, kind: 'Array', value: [Object], path: user.bananas, reason: [Object]
因为我不需要将香蕉存储到数据库中,所以我为此创建了一个解决方法。如果需要单独存储香蕉,那么可以通过对象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();
}
它似乎起作用了。