sql >> Database teknologi >  >> NoSQL >> MongoDB

Elem match returnerer alle data, mens jeg kun har brug for de valgte data

$elemmatch(query) returnerer alle rækker i et array, når der er mindst én række, der matcher forespørgselskriterierne.

$elemMatch(projektion) returnerer kun den første række af alle de matchende rækker, når den bruges som projektion.

Du kan nemt få alle matchende rækker ved at bruge array aggregation operator $filter .

I dette scenarie vil produktdetaljer blive filtreret ud fra de beståede kriterier.

aggregate([{
    $match: {
        "project_code": 'usha-fos'
    }
}, {
    $project: {
        "agency_code": 1,
        "client_code": 1,
        "project_code": 1,
        "product_details": {
            "$filter": {
                "input": "$product_details",
                "as": "result",
                cond: {
                    $eq: ["$$result.Division", "Electric Fans"]
                }
            }
        }
    }
}])



  1. Importer CSV-filer fra en mappe for at seed en database på Rails

  2. Mongodb:Udfør en datointervalforespørgsel fra ObjectId i mongo-skallen

  3. Mongoose (node.js-modul) forårsager højt CPU-forbrug

  4. Sådan designer du meget tilgængelige Open Source-databasemiljøer