私はmongoose 4.6.3を使用しています。埋め込みドキュメント配列の特定の要素を数えます
私は、次のスキーマを持っている:
var mongoose = require('mongoose');
var User = require('./User');
var TicketSchema = new mongoose.Schema({
user : { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
},
{
timestamps: true
});
var DrawSchema = new mongoose.Schema({
...
max_ticket_per_user : { type : Number, required: true },
tickets: [TicketSchema]
});
module.exports = mongoose.model('Draw', DrawSchema);
にはどうすればいいドローのチケットで特定のユーザーのObjectId(TicketSchemaのユーザフィールド)(DrawSchemaでチケットフィールド)の埋め込まれた文書を数えることができますか? 1回の抽選でユーザーのチケットを数えたいと思います。
私のスキーマ設計を変更する方が良いでしょうか?
おかげ
素晴らしい答え。私は必要な情報を取得しますが、私は与えられたIDで描画を集約したいだけです。 – AlexB
私が応答として得るのは、すべてuserIdのカウントを持つidです。私は単一の描画IDで集計したいだけです – AlexB
@AlexB上記の更新で示したように、ドキュメントをフィルタリングするために$一致のパイプラインクエリが必要です。 – chridam