如何使用mongojs

时间:2015-10-23 07:04:17

标签: node.js migrate mongojs

我正在尝试获取'fromdb'中存在的一个集合的记录,并将该记录插入到另一个'todb'集合中。两个数据库具有相同的模式结构相同的集合,我只想合并特定集合的两个记录。

我写的脚本是:

var config = require('./mydb');
var collections = ['addresses'];
var todb = require('mongojs').connect(config.todb, collections);
var fromdb = require('mongojs').connect(config.fromdb, collections);

exports.up = function(next) {
  fromdb.addresses.find().forEach(function(err, d) {
    if(!err && d){
      todb.addresses.insert(d);      
    }
    if(!d)
      next();
  });
};

exports.down = function(next) {
  next();
};

但问题是执行后没有错误,无法在todb中插入记录。请你在这里建议我做错了什么。

1 个答案:

答案 0 :(得分:0)

您正在使用mongo游标中的.forEach方法,takes a single argument。因此,在您的代码中,数据将传递给err变量,而d变量将保留为未定义。

如果你想保持错误处理,你最好使用常规回调,mongojs将为你调用数据,但你仍然有一个forEach方法:

// Instead of fromdb.addresses.find().forEach(function(err, d) {
fromdb.addresses.find(function(err, results) {
  results.forEach(function(d) {