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

モンゴ。すべての子がクエリと一致する必要がある配列を使用してドキュメントをクエリする

    $map を使用できます 各shipmentに条件を適用します 次に、 $allElementsTrue を使用します $expr 内 これらすべての要素が一致するかどうかを確認するには:

    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. 配列で$inを使用するMongoDBPHP

    2. MongoDBで値ベースのOrderByを実行するにはどうすればよいですか?

    3. 文字列としてmongoドキュメントIDを持っている場合、それを_idとしてクエリするにはどうすればよいですか?

    4. MongoDBforSaaSの複数のデータベース