sql >> Databáze >  >> NoSQL >> MongoDB

Elem match vrací všechna data, zatímco já potřebuji pouze vybraná data

$elemmatch(query) vrátí všechny řádky v poli, pokud existuje alespoň jeden řádek odpovídající kritériím dotazu.

$elemMatch(projekce) vrátí pouze první řádek ze všech odpovídajících řádků při použití jako projekce.

Všechny odpovídající řádky můžete snadno získat pomocí operátoru agregace pole $filter .

V tomto scénáři budou podrobnosti o produktu filtrovány na základě splněných kritérií.

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. jak povolím mongodb cli pretty print? - db.col.find().pretty() nefunguje

  2. Přihlaste se pomocí kořenových přihlašovacích údajů ke kontejneru Mongodb vytvořenému pomocí Docker compose

  3. Připojení k RedisToGo přes Node.JS

  4. Mongodb trvale převádí více objektů na pole na místě