1

Meteor Collection2 でコレクション スキーマを構築しようとしています。

私のコレクションの可能なスキーマは次のとおりです。

{
 items: {
     id: Meteor.ObjectID
     title: String,
     Desc: String,
     createdAt: new Date(),
     creator: String,
     invitedUsers: [String],
     items2: [{
        id: String,
        pos: Number,
        dur: Number,
        startTime: Number,
        endTime: Number,
        duration: Number
        items3: [{
                    id: String,
                    itemtype: String,
                    style: String,
                    items4: [{
                            id: String,
                            position: Number,
                            dome: String
                            }]
                    }]

        }]
   }
}

では、上記のネストされたスキーマを使用して Collection2 コレクションを構築し、その上でクエリを挿入、更新、および削除するための最良の方法をどのように構築すればよいでしょうか。

アップデート:

Andrei Karpushonak が提案したように、これは私が得たものです。

Item4 = new SimpleSchema({
    position: {
        type: Number
    },
    dome: {
        type: String
    }
});
    Item3 = new SimpleSchema({
    itemtype: {
        type: String
    },
    style: {
        type: String
    },
    items4: {
        type: [Item4]
    }
});

Item2 = new SimpleSchema({
    pos: {
        type: Number
    },
    dur: {
        type: Number
    },
    startTime: {
        type: Number
    },
    endTime: {
        type: Number
    },
    duration: {
        type: Number
    },
    items3 : {
        type: [Item3]
    }
});


Items = new Meteor.Collection2('items', {
    schema : new SimpleSchema({
        title: {
            type: String
        },
        Desc: {
            type: String
        },
        createdAt: {
            type: new Date()
        },
        creator: {
            type: String
        },
        invitedUsers: {
            type: [String]
        },
        items2: {
            type: [Item2]
        }
    })
});

だから今、私はそのようなスキーマで挿入、更新、削除操作を行う方法を理解しようとしていますか? 全体として個々のスキーマに対して行うのですか? 例は非常に役に立ちます。

どんな助けでも大歓迎です。

前もって感謝します、

プラニー

4

1 に答える 1

5

次の 2 つのオプションがあります。

サブスキーマを作成します。

item2 = new SimpleSchema({
  id: String,
  pos: Number
})

item1 = new SimpleSchema({
  id: Meteor.ObjectID,
  title: String,
  items2: [item2]
});

ドット表記を使用します。

item1 = new SimpleSchema({
  id: String,
  pos: Number,
  "item2.id": String,
  "item2.pos": String
});

items2の値としてオブジェクトの配列があるため、最初のアプローチはモデルにより適していると思います

于 2014-03-30T11:27:51.493 に答える