如何使用sparkfun phant将数据推送到mongodb?

时间:2015-08-17 15:26:14

标签: node.js mongodb node.js-stream

我是phant的新手,我无法使用mongodb找到关于phant的合适文档。因为我有很多数据,并且发生了内存溢出。最后我陷入了以下错误:

    HTTP output: { [Error: EMFILE, open 'phant_streams/4d16/83403f7611e5810d57f88174fbef/stream.csv']
  errno: -24,
  code: 'EMFILE',
  path: 'phant_streams/4d16/83403f7611e5810d57f88174fbef/stream.csv' }
events.js:87
      throw Error('Uncaught, unspecified "error" event.');
            ^
Error: Uncaught, unspecified "error" event.
    at Error (native)
    at Function.emit (events.js:87:13)
    at Function.<anonymous> (/usr/lib/node_modules/phant/node_modules/phant-manager-http/index.js:237:12)
    at PhantMeta.<anonymous> (/usr/lib/node_modules/phant/node_modules/phant-meta-nedb/lib/phant-meta-nedb.js:243:14)
    at callback (/usr/lib/node_modules/phant/node_modules/phant-meta-nedb/node_modules/nedb/lib/executor.js:30:17)
    at /usr/lib/node_modules/phant/node_modules/phant-meta-nedb/node_modules/nedb/lib/datastore.js:536:25
    at /usr/lib/node_modules/phant/node_modules/phant-meta-nedb/node_modules/nedb/lib/persistence.js:201:12
    at fs.js:1077:21
    at FSReqWrap.oncomplete (fs.js:95:15)

除此之外,有时也会出现以下错误:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

这就是为什么我想使用mongodb来防止这个错误。我搜索了这个,最后找到了mongodb的sparckfun库: https://github.com/sparkfun/phant-stream-mongodb

我安装了这个,但没有发生任何事情,因为数据仍未串入mongo。 那么,我如何将phant数据存储到mongodb?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,特别是试图在Heroku上部署我自己的Phant实例(因为我想绕过Sparkfun的50Mb限制)。在尝试了mongodb和mongoose库的版本之后,我成功地分叉并修改了它们的存储库,以便您可以在本地运行它或直接在heroku上部署(只需确保配置MongoLab附加组件)。在这里查看我的分叉:https://github.com/davidlago/phant

希望这有帮助!