$lookup
する方法はありません。 実際のビデオオブジェクトにコメントIDのリストを表示するよりも高速です。つまり、whole other request
を実行する必要があります 今それらを取得するためにmongoに。したがって、パフォーマンスに関しては、明らかにルックアップによって時間が追加されます。これは、mongoose populate
を使用していないことを前提としています。 これらのコメントIDを参照オブジェクトに「変換」します。
次に、ビデオ(および実際のカウントプロップ)からコメントを削除し、ルックアップを実行することが方法です。引数ですぐに一致してから、単純なlookup
を実行しているため これがあなたにとってどのようにボトルネックになるかはわかりません。また、集計を最適化/変更/調整して、説明
することもできます。 など
あなたのビデオスキーマはそのようにかなりきれいになるでしょう:
const VideoSchema = new mongoose.Schema({
caption: {
type: String,
trim: true,
maxlength: 512,
required: true,
},
owner: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true,
},
// some more fields
}, { timestamps: true });