我可以使用关联的主键来查找Waterline

时间:2015-09-06 23:07:53

标签: sails.js waterline

我创建了两个带关联的模型:

user.js的

attributes: {
  fullname: {
    type: 'string',
    required: true
  },

  username: {
    type: 'string',
    unique: true,
    required: true
  },

  email: {
    type: 'email',
    unique: true,
    required: true
  },

  mothertongue: {
    type: 'string'
  },

  passports: {
    collection: 'Passport',
    via: 'user'
  },

  words: {
    collection: 'Words',
    via: 'owners',
    dominant: true
  }
}

Words.js

attributes: {
  word: {
    type: 'string',
    unique: true,
    required: true
  },

  language: {
    type: 'string',
    required: true
  },

  owners: {
    collection: 'User',
    via: 'words'
  }
}

当我在搜索单词所有者时,他会返回空数组

Words
  .find({
    owners: req.session.passport.user
  })
  .exec(function(err, data){
    if (err) {
      return res.send('error');
    }

    res.send(data);
})

我也使用了.populate('owners'),但也没有用。

1 个答案:

答案 0 :(得分:2)

查找用户拥有的字词:

User.find(1).populate('words')

要查找哪些用户拥有特定字词,请使用

Word.find(id).populate('owners', {id : ...})