セイル 0.10.5/ウォーターライン 0.10.15 を使用:
populate() (すべてのデータをロードする) を使用せずに関連付けの要素をカウントする方法という単純な質問に対する答えが見つかりません。
via との単純な many2many 関係を見てみましょう:
User:
attributes: {
following: {
collection: 'user',
via: 'follower',
dominant: true
},
follower: {
collection: 'user',
via: 'following'
}
今、コレクションのサイズが必要です。現在、私は試しています
User.findById(1).populateAll().exec(function(err, user) {
// count of followings -> user.following.length;
// count of followers-> user.follower.length;
}
これにより、コレクションがロードされます。
- データの作成/読み込みを避けるために、コレクション レベルでカウント関数がありません。
- (自動生成された) 結合テーブルにアクセスして、結合でカウントクエリを直接実行する可能性はありますか?
何かのようなもの:
User.findById(1).count({'followings'}).exec(function(err, followings) {
...}
また
UserFollowingFollow_FollowFollowing.countByUserFollowingFollowId(1).
exec(function(err, followings) {
...}