我正在尝试获取'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中插入记录。请你在这里建议我做错了什么。
答案 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) {