2016-05-13 39 views
1

我有一個用Meteor和外部nodejs服務器編寫的網站,與流星的mongo一起工作。我在流星端的集合tradeOffers中創建新文檔,並在外部服務器(我使用貓鼬)在這個集合中輪詢新文檔。一切工作正常,除了貓鼬返回沒有'_id'屬性的文檔。 我的代碼是這樣的:Mongoose - 檢索到的文檔中沒有'_id'屬性

// Meteor 
var TradeOffers = new Mongo.Collection('tradeOffers'); 
TradeOffers.insert({ ... }); 

// Mongoose 
var tradeOfferSchema = new mongoose.Schema({ ... }, { collection: 'tradeOffers' }); 
var TradeOffer = mongoose.model('TradeOffer', tradeOfferSchema); 
TradeOffer.find({}).exec(function(err, results) { 
    results.forEach(function(tradeOffer) { 
    console.log(tradeOffer._id); // undefined 
    }); 
}); 

我注意到,在流星創建的文檔與貓鼬創造型「字符串」和文件「_id」字段有型的'_id「的ObjectId」。但即使這是問題,我該如何解決?我找不到任何信息。先謝謝你。

+0

你回答了你自己'_id'是'ObjectId'至極無法記錄這樣你就需要把它解析爲一個字符串'的console.log(tradeOffer._id.toString());'。另見[這個問題](http://stackoverflow.com/questions/13104690/nodejs-mongodb-object-id-to-string) –

+0

@DerTieran已經嘗試過。它說''不能讀取屬性toString'undefined'。' – starky

+0

@DerTieran如果你從'console.log'中看到,你要記錄的東西要麼有'toString'來返回''undefined'或者它是所述字符串,或者它確實是'undefined'(最可能的結果)。 –

回答

1

加入_id: String,到模式定義解決。

相關問題