我正在创建一个哈希表来排序旧的堆栈溢出问题,YAY!所以我存储一个单词作为键,也许是C ++,然后是与单词和帖子相关的ID号。我的工作正常“小”堆栈溢出文件,我能够添加大约400,000个问题的话,但总数约为125万。我需要将数据存储到一个哈希表中,但是在大约400,000个标记处,插入表的过程变得无用。有关如何修改表格或重组方法的任何想法。我简单地考虑创建三个400,000的列表并将它们全部复制到一个,但这看起来很费时,因为在成功运行之后,主要目标是尽可能快地进行人道可能。这是代码任何帮助将不胜感激。警告:代码经历了很多变化,并且有很多注释代码
const MongoClient = require('mongodb').MongoClient
const MongoUrl = 'mongodb://localhost:27017/'
const MongoDBname = 'testDB'
const MongoCollection = 'testCollection'
const moment = require('moment')
const getDB = () =>
new Promise((resolve,reject)=>{
MongoClient.connect(MongoUrl,(err,client)=>{
if(err) return reject(err)
console.log('successfully connected to db')
return resolve(client.db(MongoDBname))
client.close()
})
})
;(async ()=>{
console.log(`iteration begins on ${moment().format('YYYY/MM/DD hh:mm:ss')} ------------`)
let db = await getDB() //receives mongodb
//iterate through all db articles...
const cursor = await db.collection(MongoCollection).find()
const maxDoc = await cursor.count()
console.log('Amount of target document:' + maxDoc)
let count = 0
//replace this with stream/while/map...any other iteration methods
cursor.each((err,doc)=>{
count ++
console.log(`preloading doc No.${count} async ${(count / maxDoc * 100).toFixed(2)}%`)
})
})()