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

Mongo. Dotaz na dokumenty s polem, jehož podřízené VŠECHNY musí odpovídat dotazu

Můžete použít $map pro uplatnění vaší podmínky pro každou shipment a poté použijte $allElementsTrue uvnitř $expr zkontrolovat, zda se všechny tyto prvky shodují:

db.shop_orders.aggregate([
    {
        $match: { shipments: { $exists: true, $ne: [] } }
    },
    {
        $match: {
            $expr: {
                $allElementsTrue: {
                    $map: {
                        input: "$shipments",
                        as: "shipment",
                        in: {
                            $and: [
                                { $eq: [ "$$shipment.status", "Delivered" ] },
                                { $lte: [ "$$shipment.deliveredAt", new Date("2018-07-28") ] }
                            ]
                        }
                    }
                } 
            }
        }
    }
])



  1. Příklad MongoDB pro Yesod / Persistent

  2. Jaký je nejlepší způsob ukládání dat narození v MongoDB?

  3. Jakou databázi zvolit (Cassandra, MongoDB, ?) pro ukládání a dotazování na data událostí / protokolů / metrik?

  4. Použití $unwind a $text v agregačním rámci mongodb