Mongooseを使用して、ユーザーのプロファイルを設定するための情報を返したいとします。私はfindOneを使用して、埋め込まれたドキュメントと.populateを使って、基本的なプロファイル情報とともに、コメントのリストを作成してきました。友人の配列に含まれるオブジェクトの数を数えて、自分が所有している友人の数を取得したいと思います。mongooseスキーマ配列フィールドのfindOne内でカウントされる
これは集約のようなものですが、どうすれば両方使うことができますか?またはfindOneクエリでカウントを行う簡単な方法はありますか?
var UserSchema = new Schema({
username: String,
comments : [{ type: Schema.Types.ObjectId, ref: 'Comment' }],
friends: [
\t \t \t \t \t {
\t \t \t \t \t \t id: { type: Schema.Types.ObjectId, ref: 'User' },
\t \t \t \t \t \t permission: Number
\t \t \t \t \t }
]
})
var User = mongoose.model('User', UserSchema);
var Comment = mongoose.model('Comment', CommentSchema);
app.get('/profile/:username', function(req, res) {
User
.findOne({ username: req.params.username }, 'username friends -_id')
\t .populate({
\t \t path: 'current',
\t \t model: 'Comment',
\t \t select: 'comment author -_id date',
\t \t populate: {
\t \t \t path: 'author',
\t \t \t model: 'User',
\t \t \t select: 'username firstName lastName -_id'
\t \t }
\t }) \t
.exec(function(err, user) {
//
})
)}
を使用し、カウントしたい場合は? –