我有一个[{key: ..., type: ..., value: ...}]
形式的数组,并希望将其存储在以下模式的fields
字段中:
var articleSchema = mongoose.Schema({
name: {
type: String,
unique: true,
required: true
},
updated: {
type: Date,
default: Date.now
},
pageviews: {
type: Number,
default: 0
},
fields: [{
key: String,
type: String,
value: String
}],
image: String
});
我这样做如下,我的Javascript数组引用为keyValueObj
Article.findOneAndUpdate(
{ name: articleName },
{
fields: keyValueObj
},
{ upsert: true },
callback
);
但是,fields
字段中存储在数据库中的所有字符串都是这样的字符串数组:["[object Object]"]
如何存储我的Javascript数组,使其与我的mongoose架构正确匹配?
答案 0 :(得分:0)
我能够使用Molda's使用单独架构的想法解决这个问题。
fields
中更新的articleSchema
字段现在如下所示:
fields: [{
type: Schema.Types.ObjectId,
ref: 'Field'
}]
然后我将数组转换为模式对象数组,如下所示:
keyValueObj = keyValueObj.map(function(fieldObj){
return new Field({
key: fieldObj.key,
type: fieldObj.type,
value: fieldObj.value
});
});
然后我可以在初始代码中存储keyValueObj
。