填充标准失败

使用下面的函数,操作不会正确build立标准。

getArticlesByUser:function(cb,val) { Article.find({state:'Normal'}).populate('user', {id: cb.iduser }).populate('images').populate('devise').exec(function(err,article){ if(article) { val(null,article); } if(err) { val(err,null); } }) } 

它似乎忽略了user模型的标准。 我该如何解决?

填充方法需要2个参数:

  1. 外键:属性的名称
  2. 查询(可选):限制填充值的列表

如文档中的示例所示,第二个参数不是必需的,只有在您有一对多关联时才有用。

例如,如果你有这些模型:

 // Article.js module.exports = { attributes: { author: { model: 'user' }, title: { type: 'string' } } }; // User.js module.exports = { attributes: { articles: { collection: 'article', via: 'author' }, name: { type: 'string' } } }; 

以下是使用populate一些方法:

 // Get a user from his name User.findOne({ name: 'Pisix' }).function(err, result) { console.log(result.toJSON()); }); /* { name: 'Pisix', createdAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), updatedAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), id: 7 } */ // Get a user from his name + his articles User.findOne({ name: 'Pisix' }).populate('articles').function(err, result) { console.log(result.toJSON()); }); /* { articles: [ { title: 'The first article', id: 1, createdAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) updatedAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) }, { title: 'Another article', id: 2, createdAt: Wed Jun 21 2015 15:04:12 GMT-0600 (CST) updatedAt: Wed Jun 21 2015 15:04:12 GMT-0600 (CST) }, { title: 'I\'m back', id: 10, createdAt: Wed Jun 30 2015 13:25:45 GMT-0600 (CST) updatedAt: Wed Jun 30 2015 13:25:45 GMT-0600 (CST) } ], name: 'Pisix', createdAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), updatedAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), id: 7 } */ // Get a user from his name + one of his articles from its title User.findOne({ name: 'Pisix' }).populate('articles' , { title: 'The first article' }).function(err, result) { console.log(result.toJSON()); }); /* { articles: [ { title: 'The first article', id: 1, createdAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) updatedAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) } ], name: 'Pisix', createdAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), updatedAt: Wed Jun 20 2015 14:07:25 GMT-0600 (CST), id: 7 } */ 

在你的情况下,你想获得用户的文章。 以下是如何做到这一点:

 // Get articles of a user from his id Article.find({ author: 7 }).exec(function (err, result) { console.log(result.toJSON()); }); /* [ { title: 'The first article', id: 1, createdAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) updatedAt: Wed Jun 20 2015 14:12:33 GMT-0600 (CST) }, { title: 'Another article', id: 2, createdAt: Wed Jun 21 2015 15:04:12 GMT-0600 (CST) updatedAt: Wed Jun 21 2015 15:04:12 GMT-0600 (CST) }, { title: 'I\'m back', id: 10, createdAt: Wed Jun 30 2015 13:25:45 GMT-0600 (CST) updatedAt: Wed Jun 30 2015 13:25:45 GMT-0600 (CST) } ] */