我有这个集合和架构:
Words = new Mongo.Collection("words");
WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: [Entry]
}
});
Entry = new SimpleSchema({
post: {
type: String
},
elapsed_time: {
type: Number
},
createdAt: {
type: Date
}
});
Words.attachSchema( WordsSchema );
我只是尝试通过UPSERT(或使用upsert = true更新)向此集合添加条目,如下所示:
Words.update({
date: today,
owner: Meteor.userId()
}, {
$push: {
entries: { post: post, elapsed_time: elapsed_time, createdAt: new Date() }
}
}, {
upsert: true
});
即。如果存在date = today(存储为'YYYY-MM-DD')和owner = userId的对象,则只添加特定条目。
但是我做错了,因为我收到了错误:“条目是必需的”。
非常感谢任何帮助或想法!感谢。
答案 0 :(得分:1)
我不确定这有什么问题。但我想键入:[Entry]不支持简单模式。所以在这里你可以尝试这两种方法来实现相同的功能。 Marge两个架构。
WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: Array
}
"entries.$": {
type: Object
},
"entries.$.post: {
type: String
},
"entries.$.verified": {
type: Boolean
},
"entries.$.verified": {
type: Boolean
}
});
2。通过使用$,您可以分离两个模式
WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: Array
}
"entries.$": {
type: Entry
}
});
Entry = new SimpleSchema({
post: {
type: String
},
elapsed_time: {
type: Number
},
createdAt: {
type: Date
}
});