如何在流星Collection2中存储键值对字段
问题描述:
我想存储一组键值对对象。我正在使用流星和collection2。我声明了下面给出的字段数据类型。我想存储像如何在流星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
提交的
谢谢
答
在模式中,您应该声明密钥名称。您可以将关键值对对象存储在collection2模式中。
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"}
]
})
阅读 http:// doc s.mongodb.org/manual/reference/bson-types/ http://docs.mongodb.org/meta-driver/latest/legacy/bson/ –
Thanx Denis Nikanorow,我使用Object数据类型来存储对象字段但它不存储给定的对象。可能是我做错了。我按照要求编辑了问题 –