【发布时间】:2016-06-29 23:37:27
【问题描述】:
我正在尝试这样做:
var hStatus = require('models/hStatus');
var log = new hLog();
hStatus.find({_id: /^value_/}, function(err, data){
if(!err){
log.h = data;
log.save(function(err){
if(err){
console.log(err);
}else{
console.log('ok!');
}
});
}
});
数据变量结构:
[ { outs:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ],
c: 1457739456474,
b: false,
c: true,
d: false },
我的模型是:
var hLog = new mongoose.Schema({
a: Date,
b: Number,
c: String,
d: String,
e: Boolean,
f: Boolean,
g: String,
h: [hStatus]
});
//this two same file
var hOuts = new mongoose.Schema({
a: Number,
b: String,
c: Boolean,
d: Boolean
});
var hStatus = new mongoose.Schema({
a: String,
b: Boolean,
Outs: [hOuts],
c: Number,
d: Boolean
});
但是保存函数返回:
ValidationError: CastError: Cast to Array failed for value at "{ Outs:
这是正确的做法吗?
我不确定我错过了什么。
【问题讨论】:
-
在您的 hLog 模型中,将 h: [hStatus] 更改为 h: {} 并查看是否有效。不能解决问题,只是试试看。
-
是的,保存好了。你能给我解释一下为什么吗?谢谢!!
-
您的架构有错误。请看下面我的新答案
-
不是,我只是把字段复制错了。