0

Meteor プロジェクトで、[collection2 package] を使用しています。次の collection2 スキーマがあります。

  var schema =  new SimpleSchema ({
    comments: {
        type: [{text: String, createdAt: Date}],
        optional: true
     }})

Meteor メソッドでこのクエリを使用すると、次のようになります。

Articles.update({_id: articleId}, {$push: {comments: {text: "yryd"}}})

コメント配列に空白のオブジェクトを挿入します...OK、このクエリに問題はありません。mongo ターミナルで実行すると、すべて問題がないように見え、挿入操作が完了しました。あなたの意見の問題は何ですか?

4

1 に答える 1

1

あなたのスキーマは基本的に、ここでやりたいことに対して正しくないようです。ほとんどの場合、次のようにする必要があります。

Articles new Meteor.collection("articles");

CommentSchema = new SimpleSchema({
    "text": { type: String },
    "createdAt": { type: Date, defaultValue: Date.now }
});

Articles.attachSchema(
    new SimpleSchema({
        "comments": [CommentsSchema]
    })
);

次に、新しいものを追加すると、存在する「テキスト」フィールドについてスキーマタイプが検証され、「createdAt」などのフィールドが配列エントリ内のサブドキュメントに自動的に追加されます。

于 2015-08-29T11:31:38.190 に答える