モデルがEmployee
と呼ばれていると仮定します :
Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
$exists
として
0
を要求します 配列のインデックス。これは、配列に何かが含まれていることを意味します。
同じことが最大数にも当てはまります:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
したがって、一致させるには、配列に少なくとも10個のエントリが必要です。
実際には、配列の長さを記録し、 $inc
で更新する必要があります。 何かが追加されるたびに。次に、次のことができます:
Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
保存する「departmentsLength」プロパティ。そのプロパティにはインデックスを付けることができるため、はるかに効率的です。