0

キーと値のペア オブジェクトの配列を格納したいと考えています。meteor と collection2 を使用しています。以下のようにフィールドのデータ型を宣言しました。オブジェクトを次のように保存したい

[{key:value,key:value},{key:value,key:value},{key:value,key:value}]

私のデータベーススキーマでは、次のようにスキーマを定義しました

Meteor.mytable = new Meteor.Collection2('mytable', {
    schema: {
        name: {
            type: String,
            label: "name",
            optional:true
        },               
        the_object:{
            type: [Object],
            label:" Storing the list objects ",
            optional:false
        },   
    }
});

サーバー側でデータを保存している間、私はやっています

Meteor.mytable.insert({name:"name",the_object:[{key:value,key:value},{key:value,key:value}]);

しかし、ここでは、名前フィールドのみを含み、フィールドを含まないインスタンスを作成していthe_objectます

ありがとうございました

4

1 に答える 1

0

スキーマでは、キー名を宣言する必要があります。コレクション 2 スキーマにキーと値のペア オブジェクトを格納できます。

Meteor.mytable = new Meteor.Collection2('mytable', {
schema: {
    name: {
        type: String,
        label: "name",
        optional:true
    },               
    the_object:{
        type: [Object],
        label:" Storing the list objects ",
        optional:false
    },
    "the_object.$.label": {
        type: String,
        optional: true
    },
    "the_object.$.title": {
       type: String,
       optional: true
    },    
}
});

以下のように挿入クエリを使用できるようになりました

Meteor.mytable.insert({name:"name",the_object:[{label:value,title:value},{label:value,title:value}]);
Meteor.mytable.insert({name:"name",the_object:[{label:"testLable1",title:"testTitle1"},{label:"testLable2",title:"testTitle2"}]);

以下のように私のコードでcollection2を宣言しています。サンプルコードを参照してください

Actions = new Meteor.Collection("actions");

var Schemas = {};
Schemas.Action = new SimpleSchema({
  serviceId: {
    type: String
  },
  actionName: {
    type: String
  },
  actionDescription: {
    type: String
  },
  actionUrl: {
    type: String,
    optional: true
  },
  actionData: {
        type: [Object],
        optional: true
    },
    "actionData.$.label": {
        type: String,
        optional: true
    },
    "actionData.$.require": {
        type: String,
        optional: true
    },
    "actionData.$.name": {
      type: String,
      optional: true
    },
    "actionData.$.placeHolder": {
      type: String,
      optional: true
    },
    "actionData.$.actionType": {
      type: String,
      optional: true
    },
    headers: {
      type: Object,
      optional: true
    }
});

Actions.attachSchema(Schemas.Action);

以下のように私のクエリ

Actions.insert({
        serviceId:"123456",
        actionName: "Post",
        actionDescription: "Create a new post on your page.",
        actionUrl: "https://graph.test.com/v2.1/me/feed",
        actionData:
                [
                    {label: "Message", require: "required", name: "message", placeHolder: "Message text"},
                    {label: "Link you want to share", require: "optional", name: "link", placeHolder: "Publicly accessible URL"},
                    {label: "Link name", require: "optional", name: "name", placeHolder: "Title of the link preview"},
                    {label: "Link preview picture", require: "optional", name: "picture", placeHolder: "Preview image associated with the link"},
                    {label: "Link caption", require: "optional", name: "caption", placeHolder: "Caption under the title in the link preview"},
                    {label: "Link description", require: "optional", name: "description", placeHolder: "Description in the link preview"},
                    {label: "Link description", require: "optional", name: "description", placeHolder: "Description in the link preview"}
                ]
    })

Actions.insert({
        serviceId:"123456",
        actionName: "Post",
        actionDescription: "Create a new photo",
        actionUrl: "https://graph.test.com/v2.1/me/photos",
        actionData:
                [
                    {label: "Message", require: "required", name: "message", placeHolder: "Message text"},
                    {label: "Image URL(Publicly accessible URL we can pull the image from.)", require: "required", name: "url", placeHolder: "Publicly accessbile URL of image", actionType: "createfile"}
                ]
    })
于 2014-11-14T08:52:31.753 に答える