0

次のデータ構造があります。通常のフィールドでは条件を使用できますwhereが、配列内の条件では使用できません。

データ構造

Array
(
    [AdjustmentAmount] => Array
        (
            [_] => 0
            [currencyID] => AUD
        )

    [AmountPaid] => Array
        (
            [_] => 0
            [currencyID] => AUD
        )

    [AmountSaved] => Array
        (
            [_] => 0
            [currencyID] => AUD
        )

    [BuyerUserID] => mzkfx400

 [ShippingDetails] => Array
        (
            [SalesTax] => Array
                (
                    [SalesTaxPercent] => 0
                    [SalesTaxState] => 
                    [ShippingIncludedInTax] => 
                    [SalesTaxAmount] => Array
                        (
                            [_] => 0
                            [currencyID] => AUD
                        )

                )

            [ShippingServiceOptions] => Array
                (
                    [ShippingService] => AU_Freight
                    [ShippingServicePriority] => 1
                    [ExpeditedService] => 
                )

            [SellingManagerSalesRecordNumber] => 60340
            [GetItFast] => 
        )

)

これは動作します

 $ebayOrder = LMongo::collection('ebay_orders')->where('BuyerUserID','mzkfx400')->first();

これは動作しません

 $ebayOrder = LMongo::collection('ebay_orders')->where('ShippingService','AU_Freight')->first();

したがって、基本的には、配列内のフィールドに where 条件を使用したいと考えています。

ありがとうございます

4

1 に答える 1

0
$ebayOrder = LMongo::collection('ebay_orders')->where('ShippingService','AU_Freight')->first();

ShippingService はドキュメントではなく、その内部要素であるため、これは機能しません。ShippingDetails をフェッチしてから、foreach を使用して ShippingService を繰り返す必要があります。したがって、クエリは次のようになります。

$ebayOrder = LMongo::collection('ebay_orders')->where('BuyerUserID','mzkfx400')->first();

 foreach($ebayOrder as $order)
 {
    //Code to loop over to ShippingService.
 }
于 2013-12-16T21:48:39.010 に答える