帆js mongodb填充

我想使用.populate()Sails js和MongoDB,所以我做了这样的事情:

我正在使用最新版本的Sails和MongoDB和Node。

我的模型看起来像:

// User.js module.exports = { attributes: { name: { type: 'string' }, pets: { collection: 'pet', via: 'owner' } } }; 

 // Pet.js module.exports = { attributes: { name: { type: 'string' }, owner: { model: 'user' } } }; 

我使用了以下与文档相同的内容:

 User.find() .populate('pets') .exec(function(err, users) { if(err) return res.serverError(err); res.json(users); }); 

但是我得到以下输出:

 [ { "pets": [], "id": "58889ce5959841098d186b5a", "firstName": "Foo", "lastName": "Bar" } ] 

如果你只需要查询狗。 您可以轻松地颠倒查询。

 Pet.find() //or what you want with {} .populate('users') .exec(err, petsWithUsers) 

但是,如果没有:

 User.find() .populate('pets') .exec(err, users) ... 

这将返回所有用户( User.find() ),并且只填充types为dog populate('pets', {type: 'dog'})populate('pets', {type: 'dog'}) )。 在这种情况下,你的search结果中会有没有狗的用户。

更多信息和参考: 这里