sql >> データベース >  >> NoSQL >> MongoDB

Mongooseは、array.lengthが0より大きいすべてのドキュメントを検索し、データを並べ替えます

    モデルが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」プロパティ。そのプロパティにはインデックスを付けることができるため、はるかに効率的です。



    1. MongolabとMongodbShellの接続に失敗する

    2. 春のMongoPopulatorを1つずつ

    3. RedisとMongoDB:知っておくべきこと

    4. クエリのキーにあるMongoDBワイルドカード