このコードは機能します:
Schemas.City = new SimpleSchema({
name: {
type: String,
label: 'City',
unique: true
}
});
Cities = new Mongo.Collection('cities');
Cities.attachSchema(Schemas.City);
このコードは機能します:
Meteor.startup(function() {
}
このコードは機能します:
Cities.insert([{
name: 'Warszawa'
}, {
name: 'Krakow'
}]);
しかし、このコードはそうではありません:
Meteor.startup(function() {
if (Cities.find().count() == 0) {
Cities.insert([{
name: 'Warszawa'
}, {
name: 'Krakow'
}]);
}
}
サーバーのコンソールに次のエラーが表示されます。
W20150911-13:34:52.281(4)? (STDERR) Error: 0 is not allowed by the schema
W20150911-13:34:52.281(4)? (STDERR) at getErrorObject (packages/aldeed:collection2/collection2.js:417:1)
ご覧のとおり、aldeed:collection2パッケージを使用してデータ操作を制御し、スキーマに固執します。スキーマは単純で、重複がないことだけが必要です。
問題を発見するために移動する正しい方向は何ですか? 何か不足していますか?
更新: Meteor に挿入するときに配列がありません
わかった。Meteor では、コレクションに複数のエントリを挿入することはできません。
Collection.insert([entry1, entry2, ...])
構文。これは、次のように機能します。
Collection.insert(entry1);
Collection.insert(entry2);
したがって、問題はほとんど部分的に解決されます。