MongoDB 聚合管道的优化与局限
$out
将聚合管道中的文档,写入到一个新的集合 output
中。如果 output 已存在且有数据,则原有的数据会被清空
db.transactions.aggregate([
{
$group: {
_id: "$currency",
symbols: {
$push: "$symbol"
}
}
},
{
$out: "output"
}
])
> db.output.find()
{ "_id" : "USD", "symbols" : [ "AMZN", "AAPL" ] }
{ "_id" : "CNY", "symbols" : [ "600519" ] }
聚合操作的选项设置
- allowDiskUse
默认情况下,每个管道的内存操作不能超过100M,如果允许超出的话,可以设置allowDiskUse
为 true
临时文件,默认会被写入到 dbPath下的_tmp文件夹,dbPath的默认值为/data/db