首页 > 编程知识 正文

mongodb为什么快,mongodb创建数据库命令

时间:2023-05-04 12:53:49 阅读:156404 作者:3454

一. $group 1.基本操作$group可用于对文档进行分组。 例如,假设您想按城市对订单进行分组,并统计每个城市的订单数量。

db.sang _ collect.aggregate { $ group : { _ id : ' $ orderaddressl ',count:{$sum:1}}}要分组的字段

2 .数学运算符可以用数学运算符对分组的文档进行求和或求平均值。 例如,我想计算各城市的订单运费合计,如下所示。

db.sang _ collect.aggregate ({ $ group : (_ id : ) $orderaddressl ),totalfreight3360 ) $sum3360 ) $freighht 如下所示。

{ '_id' : 'HaiKou ',' total freight ' :20.0 } { ' _ id ' : ' Hangzhou ',' totalFreight' : 10.0}也分别

db.sang _ collect.aggregate ($ group : (_ id : ) $orderaddressl ),avgfreight: ) $avg: ) $freight

3 .极值算子极值算子用于获取分组数据集的边值。 例如,要获得每个城市最高的运费,请执行以下操作:

db.sang _ collect.aggregate ({ $ group : (_ id : ' $ orderaddressl ',maxfreight3360 ) $max:'$freight

db.sang _ collect.aggregate ($ group : (_ id : ' $ orderaddressl ',minfreight3360 ) $min: ) $freight

db.sang_collect.aggregate () $group:(_id: ) $orderaddressl ),firstfreight3360 ) $first3360($freight

db.sang _ collect.aggregate ({ $ group : (_ id : ) $orderaddressl ),lastfreight3360 ) $last: ) $freighht

db.sang _ collect.aggregate ($ group : (_ id : ' $ orderaddressl ',freights: ) $addtoset:'$freights

可以添加$push而不限制重复数据,如下所示:

db.sang _ collect.aggregate ($ group : (_ id : ' $ orderaddressl ',freights: ) $push:'$freight '

{ ' _ id ' : objectid (59 f 93 c8 b 8523 CFA E4 cf 4b a 86 )、“name' : (快乐鸽子)、“books”: ({ ' name ' 33: )呼叫

db.sang _ books.aggregate ({ $ unwind : ' $ books ' } )的拆分结果如下:

{ ' _ id ' : objectid (59 f 93 c8 b 8523 CFA E4 cf 4b a 86 )、' name' : )快乐鸽子)、' Books':(name': )尖叫) publisher' : '花城出版社' } { ' _ id ' : objectid (' 59 f 93 c8 b 8523 CFA E4 cf 4b a 86 ),' name' : '快乐的鸽子),' booo

db.sang _ collect.aggregate { $ sort : { orderaddressl 33601 } }的用法与至此描述的常规搜索一致。 可以按现有字段排序,也可以按重命名的字段排序。 如下所示。

db.sang _ collect.aggregate { $ project : { OA : ' $ orderaddressl ' },{$sort3360{OA:-1}}}1表示升序

$limit返回结果中的前n个文档。 返回结果的前三个文档,如下所示:

db.sang _ collect.aggregate { $ project : { OA : ' $ orderaddressl ' },{$limit33603}}$skip将前n个文档转换为例如,这意味着要跳过前面的n个文档

db.sang _ collect.aggregate { $ project : { OA : ' $ orderaddressl ' },{$skip33605}}$skip效率较低,请谨慎使用

四、总结在管道开始执行的阶段过滤尽可能多的数据,这样做有两个好处。

索引仅在直接从集合中查询时使用,如果提前执行过滤,索引将发挥作用。

过滤此过滤后的数据后,还可以降低后面管道的运行压力。 此外,MongoDB不允许单个聚合操作占用大量内存。 如果一个聚合操作占用20%以上的内存,则会直接报告错误。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。