如何使用mongojs将集合记录从一个数据库插入到另一个数据库
how to insert collection records from one database to another database using 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中插入记录。你能告诉我我做错了什么吗?
您正在使用 mongo 游标的 .forEach 方法,takes a single argument。因此,在您的代码中,数据被传递给 err
变量,而 d
变量未定义。
如果你想保留错误处理,你最好使用常规回调,mongojs 会在数据上为你调用 toArray,但你仍然有一个 forEach 方法:
// Instead of fromdb.addresses.find().forEach(function(err, d) {
fromdb.addresses.find(function(err, results) {
results.forEach(function(d) {
我正在尝试获取存在于 '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中插入记录。你能告诉我我做错了什么吗?
您正在使用 mongo 游标的 .forEach 方法,takes a single argument。因此,在您的代码中,数据被传递给 err
变量,而 d
变量未定义。
如果你想保留错误处理,你最好使用常规回调,mongojs 会在数据上为你调用 toArray,但你仍然有一个 forEach 方法:
// Instead of fromdb.addresses.find().forEach(function(err, d) {
fromdb.addresses.find(function(err, results) {
results.forEach(function(d) {