簡體   English   中英

mongodb oddm查詢組

[英]doctrine mongodb odm query group by

我有3個集合,我想執行類似於sql查詢的查詢

SELECT fp.userId, fp.orderId, productId, fp.request_Payment_ChargeTotal, 
fp.createdOn, u.referrerSite, COUNT(*), 
sum( fp.request_Payment_ChargeTotal ) AS total 
FROM `firstdata_payment_webservice` fp, userlicenses ul, users u 
WHERE u.userId = ul.userId
AND fp.response_TransactionResult = 'APPROVED' 
AND fp.request_Payment_ChargeTotal > 0 
AND ul.orderId = fp.orderId AND fp.createdOn 
BETWEEN cast( '2011-09-10' AS DATETIME ) 
AND cast( '2011-09-20' AS DATETIME )
GROUP BY u.referrerSite, productId WITH ROLLUP

我該如何在mongodb odm學說中進行類似的操作。

好吧,應用“ JOIN”不是MongoDB的意圖。 因此,您必須以不同的方式構造數據。

db.users

  • ID
  • 名稱
  • 許可證(存儲為哈希類型)

db.orders

  • ID
  • created_on(日期時間類型)
  • 已處理(日期時間類型)
  • user_id(可以是DBRef或ObjectId類型)
  • 產品(以數組類型存儲,包含對象)
  • 交易(存儲為哈希類型,並帶有日期時間,Web服務類型等信息)

使用MapReduce,您可以通過查詢訂單表來計算其他物料。 並且,如果您需要有關客戶的數據,請使用要查找的用戶ObjectId數組在另一個查詢中進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM