0
votes

I have a document as below

{
    "GMParcelStatus": {
    "storeNumber": 5678,
    "GMVehicleTrips": {
    "GMVehicleTrip": [
    {
    "GMVehicleTripId": "1000101",
    "MultiChannelOrders": {
    "MultiChannelOrder": [
    {
    "multiChannelOrderID": "4BQGBNJ3U",
    "multichannelParcels": [
    {
    "multiChannelParcelStatus": "LOADING_MISSING",
    "UPI": "00000008101058629797"
    },
    {
    "multiChannelParcelStatus": "OUTFORDELIVERY",
    "UPI": "00000008101058684938"
    }
    ]
    },
    {
    "multiChannelOrderID": "4BQGUNY56W",
    "multichannelParcels": [
    {
    "multiChannelParcelStatus": "DELIVERED",
    "UPI": "00000008101058629793"
    },
    {
    "multiChannelParcelStatus": "DELIVERED",
    "UPI": "00000008101058684932"
    }
    ]
    }
    ]
    }
    }
    ]
    }
    },
    "_class": "com.tesco.bean.MultiChannelParcelRequestVO"
    }

I want to get all the document in my bucket data based on storeNumber and GMVehicleTripId. I have 4 document similar to above with different GMVehicleTripId.

I have written N1ql query like below Select d.* from Delivery d JOIN Delivery.GMParcelStatus.GMVehicleTrips.GMVehicleTrip[0] b on keys meta(d).id where b.GMVehicleTripId in ['1000101']

but i don't want to do this GMVehicleTrip[0].

please get me the right way to do.

Thanks,
Vinay J
1

1 Answers

1
votes
SELECT d.* FROM  Delivery d JOIN Delivery b ON KEYS meta(d).id 
WHERE ANY v IN b.GMParcelStatus.GMVehicleTrips.GMVehicleTrip SATISFIES v.GMVehicleTripId IN ['1000101'] END;