帆 js mongodb 填充
sails js mongodb populate
我想将 .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) ...
这将 return 所有用户 (User.find()
) 并且只填充狗类型的宠物 (populate('pets', {type: 'dog'})
)。如果您的结果中有没有狗的用户。
更多信息和参考:here
我想将 .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) ...
这将 return 所有用户 (User.find()
) 并且只填充狗类型的宠物 (populate('pets', {type: 'dog'})
)。如果您的结果中有没有狗的用户。
更多信息和参考:here