TypeError:Object#<Promise>没有方法forEach'mongodb

我正尝试在Visual Studio中使用MongoDB和nodejs将文档从一个集合复制到另一个集合。 这是我想要做的:

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); }); 

在Mongo网站上,它说,collection.find()应该返回一个应该能够使用forEach()方法的游标。 但是,它并没有返回游标对象,forEach似乎没有为返回的内容定义。

我从主题行得到的错误说: TypeError: Object #<Promise> has no method 'forEach'

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

在Mongo网站上

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

但是,也要确保你使用的是正确版本的Node库(也是官方版本)。

尝试这个:

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

我认为你的问题是来自查询的响应是一个对象。 这个方法适用于我。