2016-09-13 3 views
0

ich ein Dokument wie unten habeN1ql Daten aus der Sammlung Get basierend auf Feldwert

{ 
    "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" 
    } 

Ich mag die ganze Dokument in meinem Eimer Daten auf storeNumber und GMVehicleTripId Basis erhalten. Ich habe 4 Dokumente ähnlich wie oben mit verschiedenen GMVehicleTripId.

Ich habe N1ql geschrieben Abfrage wie unter Select d. * Ab Lieferung d Delivery.GMParcelStatus.GMVehicleTrips.GMVehicleTrip JOIN [0] b auf Tasten meta (d) .id wo 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 

Antwort

1
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; 
Verwandte Themen