1

これは私の単純化されたコレクションとそのスキーマです:

Comments = new Mongo.Collection('comments');

Comments.schema = new SimpleSchema({
    attachments: {type: [Object], optional: true},
});

Comments.attachSchema(Comments.schema);

そして、これは私の単純化された方法です:

Meteor.methods({
    postComment() {         
        Comments.insert({
            attachments: [{type:'image', value:'a'}, {type: 'image', value:'b'}]
        });
    }
});

メソッドを呼び出した後、これが MongoDB にあるドキュメントです。

{
    "_id" : "768SmgaKeoi5KfyPy",
    "attachments" : [ 
        {}, 
        {}
    ]
}

配列内のオブジェクトにはプロパティがありません! この行をコメントアウトすると、次のようになります。

Comments.attachSchema(Comments.schema);

メソッドを再度呼び出すと、挿入されたドキュメントは正しいように見えます。

{
    "_id" : "FXHzTGtkPDYtREDG2",
    "attachments" : [ 
        {
            "type" : "image",
            "value" : "a"
        }, 
        {
            "type" : "image",
            "value" : "b"
        }
    ]
}

ここで何か基本的なことが欠けているに違いありません。教えてください。Meteor の最新バージョン (1.2.1) を使用しています。

4

1 に答える 1