帆 – 蒙哥:多对多的关系是不适用于我的应用程序。 接下来的文档还是给它空的数组
我用mongodb使用js风帆。
这里是我的EventTags模型:
EventTags.js
module.exports = { schema: true, attributes: { eventList: { collection: 'Events', via:'tagList' }, event_tag_name:{ type:'string', required:true, unique:true } } };
这里是我的事件模型:
Events.js
module.exports = { schema: true, attributes: { tagList: { collection: 'EventTags', via:'eventList' }, title:{ type:'string',required: true}, blurb:{ type:'string'}, description:{ type:'string'}, venue: {type: 'string',required: true}, } };
创build了EventTags,这是我的JSON响应。
{ "status": 109, "status_message": "success..!!", "event_tag_info": { "event_tag_name": "travel1", "createdAt": "2015-07-15T06:01:09.050Z", "updatedAt": "2015-07-15T06:01:09.050Z", "id": "55a5f725f7d707ba4f32ac74" } }
接下来我复制了EventTags ID即“id”:“55a5f725f7d707ba4f32ac74 ”。 到事件模型。 这里是事件模型发布数据。
{ "tagList":"55a5f725f7d707ba4f32ac74", "title": "Snow City : Bengaluru", "blurb": "testtesttesttesttesttest", "description": "Toronto has been chosene city", "venue": "palace ground" }
当我打http:// localhost:1337 /事件
我得到空的tagList数组。
[ { tagList: [ ], title: "Snow City ", blurb: "some data", description: "some data", venue: "some address", id: "55a5f98ef7d707ba4f32ac75" } ]
请任何人帮助我这个。
为了获取事件的标签列表,您需要填充tagList
属性。
使用Blueprint API,您可以点击http:// localhost:1337 / events / 55a5f98ef7d707ba4f32ac75 / tagList 。
在一个控制器中,你可以使用:
Event .findOne('55a5f98ef7d707ba4f32ac75') .populate('tagList') .exec(...);
多对多关系意味着一个连接表将由Sails自动创build。 所以你需要把两个表中的数据分配给对方。
首先。 在模型中,所有通过名称都是小写的:
EventTags.js
module.exports = { schema: false, attributes: { eventList: { collection: 'Events', via:'taglist' }, event_tag_name:{ type:'string', required:true, unique:true } } };
Events.js
module.exports = { schema: false, attributes: { tagList: { collection: 'EventTags', via:'eventlist' }, title:{ type:'string',required: true}, blurb:{ type:'string'}, description:{ type:'string'}, venue: {type: 'string',required: true}, } };
接下来,您需要关联数据,如:
Events.findOne({id: '55a5f98ef7d707ba4f32ac75'}).exec(function(err, event){ if (err) { console.log(err); } else { event.tagList.add('55a5f725f7d707ba4f32ac74'); event.save(function(err, saved){ if (err) { console.log(err); } else { console.log(saved); } }); } });
你也可以使用Blueprint来保存数据,例如:
创build数据 – POST /事件
{ tagList: [ '55a5f725f7d707ba4f32ac74' ], title: "Snow City ", blurb: "some data", description: "some data", venue: "some address", }
更新数据 – PUT / events / 55a5f98ef7d707ba4f32ac75
{ tagList: [ '55a5f725f7d707ba4f32ac74' ], title: "Snow City ", blurb: "some data", description: "some data", venue: "some address", }
相关文档