帆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结果中会有没有狗的用户。
更多信息和参考: 这里