2014-07-10 49 views
1

我想一个文件从一个集合复制到另一个使用的MongoDB和Visual Studio中的NodeJS。这里就是我想要做的:类型错误:对象#<Promise>没有法“的forEach”的MongoDB

var newcollection = db.get('mynewdata'); 
var oldcollection = db.get('myusercollection'); 
var userName = req.body.username; 

oldcollection.find({ "username" : userName }).forEach(function (docs) { 
    newcollection.insert(docs); 
}); 

在蒙戈网站上面说collection.find()应该返回其应该能够使用forEach()方法的光标。但是,它并没有返回游标对象,forEach似乎没有为返回的游标定义。

我从主题行写着错误:TypeError: Object #<Promise> has no method 'forEach'

任何想法,为什么它给我这个错误?

+0

是否使用https://www.npmjs.org/package/mongodb? – generalhenry

+0

你在使用猫鼬吗? – JohnnyHK

+0

是我使用的猫鼬 – Liz

回答

0

On the Mongo website

这可能是核心mongo API的情况,而不是Node.js模块。

而且,请确保您使用的节点库的正确版本(和官方一个太)。

1

试试这个:

oldcollection.find({ "username" : userName }).exec(function(err, results){ 
    if(err){ 
     throw err 
    } else { 
     results.forEach(function(docs){ 
      newcollection.insert(docs) 
     }) 
    } 
}); 

我觉得你的问题是从查询的响应是一个对象。这种方法适用于我。

相关问题