MongoDB聚合结果输出到新的集合方法与案例实践
Posted 肖永威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB聚合结果输出到新的集合方法与案例实践相关的知识,希望对你有一定的参考价值。
$out (aggregation)
获取聚合管道返回的文档并将其写入指定集合。从MongoDB 4.4开始,可以指定输出数据库。
- $out阶段必须是管道中的最后一个阶段。
- $out运算符允许聚合框架返回任意大小的结果集。
语法:
$out: db: "<output-db>", coll: "<output-collection>"
-
db:输出数据库名称。
对于复本集或单机版,如果输出数据库不存在,$out则创建数据库。对于分片群集,指定的输出数据库必须已经存在。 -
coll:输出集合名称
例如:
db.getCollection('customerfeature').aggregate([
'$match':'yearmonth':'$gte':'202101','$lte':'202112',
'$sort':'carduser_id':1,'yearmonth':1,
'$group':'_id':'$carduser_id','data':'$last':'$$ROOT',
'$project':'carduser_id':'$data.carduser_id','yearmonth':'$data.yearmonth','lateststatus':'$data.lateststatus',
'$out':'db':'ccm','coll':'laststatus'
],
'allowDiskUse':true)
另外,$out可以使用字符串仅指定输出集合(即输出到同一数据库中的集合)。
$out: "<output-collection>" // Output collection is in the same database
db.getCollection('customerfeature').aggregate([
'$match':'yearmonth':'$gte':'202101','$lte':'202112',
'$sort':'carduser_id':1,'yearmonth':1,
'$group':'_id':'$carduser_id','data':'$last':'$$ROOT',
'$project':'carduser_id':'$data.carduser_id','yearmonth':'$data.yearmonth','lateststatus':'$data.lateststatus',
'$out':'laststatus00'
],
'allowDiskUse':true)
参考:
https://docs.mongodb.com/upcoming/reference/operator/aggregation/out/
以上是关于MongoDB聚合结果输出到新的集合方法与案例实践的主要内容,如果未能解决你的问题,请参考以下文章