我是 mongo 的新手,我正在尝试做一个简单的查询(至少在 sql 中它很简单),但我做错了。我使用java驱动程序。
我的收藏包含文件:
{"name":"bb",
"action": {"Type":"Buy","amount":78},
"date": "Jan 31, 2013 10:31:20 AM"}
我想查找用户:“bb”是否在上个月进行了购买操作,总金额超过 1000(我想要$sum
金额)
我如何在 Mongodb 中执行此操作?
谢谢
我是 mongo 的新手,我正在尝试做一个简单的查询(至少在 sql 中它很简单),但我做错了。我使用java驱动程序。
我的收藏包含文件:
{"name":"bb",
"action": {"Type":"Buy","amount":78},
"date": "Jan 31, 2013 10:31:20 AM"}
我想查找用户:“bb”是否在上个月进行了购买操作,总金额超过 1000(我想要$sum
金额)
我如何在 Mongodb 中执行此操作?
谢谢
像这样的东西:
db.col.aggregate([
{$match: {name: 'bb'}},
{$unwind: '$action'},
{$group: {_id: '$name', sum_amount: {$sum: '$action.amount'}}},
{$match: {sum_amount: {$gt: 1000}}}
])
会做的伎俩。我假设这里唯一的操作类型是,如果不是这种情况,您可以在buy
以下情况下进行额外操作:$match
$unwind
{$match: {'action.Type': 'Buy'}}
只获取Buy
类型。