2017-04-12 100 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}}}})