MongoDB 4.4如何设置allowDiskUse默认始终为true?
关于MongoDB 4.4默认开启allowDiskUse的方法
MongoDB 4.4本身没有原生支持全局默认开启allowDiskUse的配置项,官方文档确实未提及相关全局设置。不过可以通过以下几种替代方案实现类似效果:
客户端层面统一配置:在应用程序的MongoDB驱动中,封装通用的聚合、mapReduce等操作方法,默认添加
allowDiskUse: true参数。比如Node.js驱动的示例:async function aggregate(collection, pipeline) { return collection.aggregate(pipeline, { allowDiskUse: true }); }所有业务查询都调用这个封装后的方法,无需手动每次添加参数。
数据库层面创建自定义函数:在MongoDB实例中创建全局自定义函数,内部自动启用allowDiskUse,替代原生的聚合方法:
db.system.js.save({ _id: "aggregateWithDiskUse", value: function(collectionName, pipeline) { return db.getCollection(collectionName).aggregate(pipeline, { allowDiskUse: true }); } })使用时直接调用
db.aggregateWithDiskUse("目标集合名", [/* 聚合管道 */])即可。代理/中间层拦截处理:如果架构中存在数据库代理层,可以在代理逻辑里拦截所有聚合请求,自动注入
allowDiskUse: true参数后再转发给MongoDB实例,实现全局生效。
内容的提问来源于stack exchange,提问作者Béla Nguyen
相关产品推荐
相关产品推荐

