前提对象:order
@Getter
@Setter
@Document(collection = "order")
public class Order {
/**
* 订单号
*/
@Id
private String orderId;
/**
* 手机号
*/
private String cellphone;
/**
* 创建时间
*/
private Date createTime = new Date();
}
查询代码:
db.getCollection('order').aggregate([
{$match:{createTime:{$gt:ISODate("2019-01-01"),$lt:ISODate("2020-07-31")}}},
{ $group: { _id : '$cellphone', count: { $sum : 1 } } },
{ $match: {count: { $gt : 2} }},
{$group: { _id: null,count: { $sum: 1 }}}])
解释:
#此sql用户查询 该创建时间段内同一个手机号下单超过2次的次数#
# {$match:{createTime:{$gt:ISODate("2019-01-01"),$lt:ISODate("2020-07-31")}}}:可以更改创建时间的范围 #
# $match: {count: { $gt : 2} }: 大于2次#
#比较运算符:
$eq = "="
$gt (greater than ) >
$gte >= (equal)
$lt (less than) <
$lte <= (equal)
$ne (not equal) !=
$in in
$nin (not in) !in
#