我有两个模型“用户”和“聊天”,具有多对多关联。
用户.js
module.exports = {
attributes: {
name: {
type : 'string'
,required : true
},
email:{
type : 'string'
,email : true
,required: true
,unique : true
},
enpassword : {
type: 'string'
},
online : {
type: 'boolean',
defaultsTo: false
},
socketid: {
type: 'string'
},
chats : {
collection: 'chat',
via: 'users',
dominant: true
}
};
聊天.js
module.exports = {
attributes: {
messages : {
collection: 'message',
via : 'chat',
dominant : true
},
users : {
collection: 'user',
via : 'chats'
},
}
};
当我调用 sails blueprint/user/1/chats 时,我得到了聊天列表,但每个聊天的用户关联未填充。
如何通过 Sails 查询实现此目的?
最佳答案
很好的问题。这是一个非常简单的方法来做到这一点。
首先,需要以下模块。
var nestedPop = require('nested-pop');
接下来,运行您的查询。
getPopulatedUsers = function(req, res) {
User.find()
.populate('chats')
.then(function(users) {
return nestedPop(users, {
chats: [
'messages',
'users' // I actually wouldn't recommend populating this since you already have the users
]
}).then(function(users) {
console.log(users);
res.json(users);
});
});
}
有关此内容的更多文档可以在以下链接中找到。 https://www.npmjs.com/package/nested-pop
关于sails.js - 如何自动填充 url/model/<id>/association 的 sails 蓝图的嵌套关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41119086/