2017-04-12 3 views
0

{ "_id": "WR10005", "_class": "com.bioraid.mes.model.WorkOrders", "rountingNumber": "R006", « orderId ": "MR-1017", "consommables": "Chip", "workOrderStatus": "en attente", "deliveryStatus": "à temps", "lastCompletedStage": "testProces", "dateAssigned": ISODate ("2017-02-17T05: 38: 57.631Z"), "dateCompleted": ISODate ("2017-02-17T07: 53: 32.680Z"), "opretorProcessStatus": [ { "opretorid": "USER114", "proc ess ":" testProces ", " status ":" Terminé ", " workCenterId ":" WC1 ", " startDate ": ISODate (" 2017-02-17T06: 30: 16.813Z "), " endDate " : ISODate ("2017-02-17T06: 42: 23.237Z"), "qualityManagerReview": { "Qaid": "", "status": "Terminé", "note": ""} }, { "opretorid": "USER116", "processus": "testProces", "statut": "Terminé", "workCenterId": "WC1", "startDate": ISODate ("2017- 02-17T06: 30: 16.813Z "), " endDate ": ISODa te ("2017-02-17T06: 42: 23.237Z") } ], "workOrdersRouting": { " testProces": [{ "routingStep": "R006 * 010", "operationName": "Opération1", "operationStatus": "Terminé", "OperationResult": "Pass", "operationNote": "test" }, { "routingStep": "R006 * 020", "operationName" : "adalks", "operationStatus": "Terminé", "operationResult": "Pass", "operationNote": "sddsdfsf" } ], "embossage": [ { "routingStep": "R006 * 030", "operationName": "Nettoyage eau", "operationStatus": "", "OperationResult": "", "operationNote": "" } ], "turbidité": [ { "routingStep": "R006 * 040", "operationName": "Assemblée embosser", "operationStatus": "", "operationResult": "", "operationNote": "" } ] }} Comment écrire requête mongo pour l'objet

Je veux { 'opretorProcessStatus.qualityManagerReview.status': {$ ne: null}} mais cela ne donne pas bon résultat peut me aider à écrire ceci. Et un autre est db.getCollection ('workOrders'). Find ({'opretorProcessStatus.qualityManagerReview.status': "Done"}).

Répondre

0

Vous pouvez utiliser $ elemMatch pour obtenir le document dont vous avez besoin.

Pour rechercher des documents avec opretorProcessStatus.qualityManagerReview.status = Fait, utilisez cette requête:

db.getCollection("workOrders").find({"opretorProcessStatus":{"$elemMatch":{""qualityManagerReview.status":"Done"}}}) 

Pour trouver les documents qui n'ont pas le statut comme nul:

db.getCollection("workOrders").find({"opretorProcessStatus":{"$elemMatch":{""qualityManagerReview.status":{"$ne":null}}}})