2014-07-10 50 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) 
     }) 
    } 
}); 

我覺得你的問題是從查詢的響應是一個對象。這種方法適用於我。

相關問題