首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb odm查询组

mongodb odm查询组
EN

Stack Overflow用户
提问于 2011-09-21 13:23:53
回答 1查看 791关注 0票数 0

我有3个集合,我想执行类似于sql查询的查询,如

代码语言:javascript
复制
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中做类似的操作。

EN

回答 1

Stack Overflow用户

发布于 2011-10-19 13:52:52

那么,应用“联接”并不是MongoDB的目的。所以你必须用不同的方式构造你的数据。

db.users

  • id
  • name
  • licences (存储为哈希类型)

db.orders

  • id
  • created_on (Datetime type)
  • processed_on ( datetime type)
  • user_id )可能是DBRef或ObjectId type)
  • products (存储为数组类型,包含objects)
  • transaction (存储为Hash类型,包含日期时间、webservice类型等信息)

)

使用MapReduce,您可以通过查询orders表来计数其他内容。如果您需要客户的数据,可以在另一个查询中使用您要寻找的用户ObjectIds数组进行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7500493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档