一帆风顺的js填充条件不工作?

我是Sails的新手,我遇到了一对一的问题。 首先,我有模型用户:

module.exports = { schema: true, identity : "User", tableName: "user", attributes: { email: { type: 'email', unique: true, required: true }, password: { type: 'string' }, salt: { type: 'string' }, merchant: { model: 'merchant', defaultsTo: null }, removed: { type: 'boolean', required: true, defaultsTo: false } } } 

而我的商家模式:

 module.exports = { schema: true, identity : "Merchant", tableName: "merchant", attributes: { name: { type: 'string', unique: true, required: true }, code: { type: 'string', unique: true, required: true }, security_key: { type: 'string', required: true }, active: { type: 'boolean', defaultsTo: false, required: true }, user: { model: 'user' } } } 

所以当我需要findloggingmerchant.active = true ,我写这个查询:

 var findUser = User.find(query).populate('merchant', {active: true}); return findUser; 

但是这根本不能工作。

任何任何想法来解决这个问题呢?

PS我的风帆版本是:0.11.1。 我的数据库是MongoDB

首先,从你的关联属性中删除defaultsTo 。 我不喜欢这个:)我不知道是否会造成问题,但在文档中我从来没有看到这个。

你也需要执行你的查询,而不仅仅是返回它。 如果我把你的模型的声明,然后我可以写这样的填充查询。

 var findUser = User.find(query).populate('merchant', {active: true}); findUser.then(function(user) { console.log('Your user is ' + user); }).catch(function(error) { console.log('Your error is ' + error); });