我正在將我的報告網站從MySQL轉換爲C#中的MongoDB。 到目前爲止,我很滿意MongoDB插入數據。 現在,從收藏中,我需要打印出來。C#中MongoDB查詢報告的最佳方式是什麼?
原來,我的查詢是這樣的
strSQL = "SELECT " +
" '" + strSearchingStartDate + "' AS SearchStartDate, '" + strSearchingEndDate + "' AS SearchEndDate, '" + strCurrentUserName + "' as WhoPrint, " +
" machinelograwdata.MachineID , " +
" machinelograwdata.Parameter1 AS 'Code', " +
" machinelograwdata.Parameter42 AS 'Orders', " +
" Temp2.HideStartTime AS StartTime, " +
" machinelograwdata.EndTime, " +
" UNIX_TIMESTAMP(machinelograwdata.EndTime) - UNIX_TIMESTAMP(Temp2.HideStartTime) AS Duration, " +
" Temp.StartTime AS CutStartTime, " +
" Temp.EndTime AS CutEndTime, " +
" Temp.Duration AS CutDuration, " +
" NULL AS NestingStartTime, " +
" NULL AS NestingEndTime, " +
" '0.00' AS NestingDuration, " +
" '0.00' AS 'SupplierAream2', " +
" ROUND(machinelograwdata.Parameter3/1000000, 2) AS 'GrossAream2', " +
" ROUND(machinelograwdata.Parameter26/1000000, 2) AS 'NetAream2', " +
" machinelograwdata.Parameter27 AS 'YieldPercen', " +
" machinelograwdata.Parameter25 AS 'NoPiece', " +
" machinelograwdata.Parameter24 AS 'Material', " +
" machinelograwdata.Parameter44 AS 'Models', " +
" ROUND(machinelograwdata.Parameter9/1000000, 2) AS 'Quantity0Area', " +
" '0.00' AS 'Quantity1Area', " +
" '0.00' AS 'Quantity2Area' " +
" FROM " +
" machinelograwdata " +
" INNER JOIN catalogue" +
" ON machinelograwdata.EventID = catalogue.CatalogueID " +
" LEFT JOIN " +
" (SELECT MachineID, Parameter1, EndTime, StartTime, UNIX_TIMESTAMP(EndTime) - UNIX_TIMESTAMP(StartTime) AS Duration " +
" FROM " +
" (SELECT machinelograwdata.MachineID, machinelograwdata.Parameter1, " +
" MAX(machinelograwdata.EndTime) AS EndTime, " +
" MIN(machinelograwdata.StartTime) AS StartTime " +
" FROM " +
" machinelograwdata, catalogue " +
" WHERE " +
" machinelograwdata.EventID = catalogue.CatalogueID " +
" AND catalogue.CatalogueGroup = 'EventDesc' " +
" AND StartTime >= '" + strSearchingStartDate + "' " +
" AND StartTime <= '" + strSearchingEndDate + "' " +
" AND EventID = '15' " +
" AND machinelograwdata.Parameter2 = '0' " +
" GROUP BY machinelograwdata.Parameter1, machinelograwdata.MachineID) M) Temp " +
" ON Temp.Parameter1 = machinelograwdata.Parameter1 " +
" AND Temp.MachineID = machinelograwdata.MachineID " +
" LEFT JOIN " +
" (SELECT MachineID, Parameter1, MIN(StartTime)AS HideStartTime " +
" FROM machinelograwdata " +
" WHERE EventID = '13' " +
" AND machinelograwdata.StartTime <= '" + strSearchingEndDate + "' " +
" AND machinelograwdata.StartTime >= '" + strSearchingStartDate + "' " +
" GROUP BY MachineID, Parameter1) Temp2 " +
" ON Temp2.Parameter1 = machinelograwdata.Parameter1 " +
" AND Temp2.MachineID = machinelograwdata.MachineID " +
" WHERE catalogue.CatalogueGroup = 'EventDesc' " +
" AND machinelograwdata.StartTime <= '" + strSearchingEndDate + "' " +
" AND machinelograwdata.StartTime >= '" + strSearchingStartDate + "' " +
" AND EventID = '14' " +
" AND CONVERT(Parameter35, DECIMAL) <> 0 " +
" ORDER BY machinelograwdata.MachineID , machinelograwdata.StartTime; ";
我的問題是,有可能是我寫的MongoDB用相同的查詢?
並在MongoDB上有「查看」的概念?因爲我有另一個使用View的MySQL報告查詢。
我很感激您是否有任何建議或建議。 謝謝, Thomas
Hi @ Monk-Who-Code, 謝謝您的建議。 看起來,我將不得不做些功課才能使用MongoDB進行報告。 我想,我在內存中加載MongoDB並處理它。 所以,表現是我應該照顧的。 – ThomasLee