2017-04-12 68 views
0

{ “_id”: “WR10005”, “_class”: “com.bioraid.mes.model.WorkOrders”, “rountingNumber”: “R006”, “订单ID “: ”MR-1017“, ”消耗品“: ”芯片“, ”workOrderStatus“: ”待定“, ”deliveryStatus“: ”准时“, ”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“:”Done“, ”workCenterId“:”WC1“, ”startDate“:ISODate(”2017-02-17T06:30:16.813Z“), ”endDate“ :ISODate( “2017-02-17T06:42:23.237Z”), “qualityManagerReview”:{ “Qaid先生的拘留”: “”, “状态”: “完成”, “注意”: “” } },{ “opretorid”: “USER116”, “过程”: “testProces”, “状态”: “完成”, “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”: “Operation1”, “operationStatus”: “已完成”, “operationResult”: “通行证”, “operationNote”: “测试” }, { “routingStep”: “R006 * 020”, “operationName” :“adalks”, “operationStatus”:“Completed”, “operationResult”:“Pass”, “operationNote”:“sddsdfsf” } ], “压花”:[ { “routingStep”: “R006 * 030”, “operationName”: “水清洗”, “operationStatus”: “”, “operationResult”: “”, “operationNote”: “” } ], “浊度”:[ { “routingStep”: “R006 * 040”, “operationName”: “压花装置”, “operationStatus”: “”, “operationResult”:“”, “operationNote”:“” } ] }} 如何写蒙戈查询对象

我想{“opretorProcessStatus.qualityManagerReview.status”:{$ NE:空}}但这不给正确的结果任何一个可以帮我写这个。

另一个是db.getCollection('workOrders')。find({'opretorProcessStatus.qualityManagerReview.status':“Done”})。

回答

0

您可以使用$ elemMatch获取您需要的文档。

使用opretorProcessStatus.qualityManagerReview查找文档。状态=完成后,使用此查询:

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

要找到那些没有为空状态的文件:

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