帆 – 蒙哥:多对多的关系是不适用于我的应用程序。 接下来的文档还是给它空的数组

我用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", } 

相关文档