Mongoose - 检索到的文档中没有'_id'属性

时间:2016-05-13 10:46:04

标签: javascript node.js mongodb meteor mongoose

我有一个用Meteor和外部nodejs服务器编写的网站,可以与meteor的mongo一起使用。我在Meteor一侧的集合tradeOffers中创建新文档,并在外部服务器上查询此集合中的新文档(我使用mongoose)。除了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
  });
});

我注意到在Meteor中创建的文档具有'String'类型的'_id'字段,使用mongoose创建的文档具有'ObjectId'类型的'_id'。但即使这是问题,我该如何解决呢?我找不到任何信息。提前谢谢。

1 个答案:

答案 0 :(得分:4)

通过将_id: String,添加到架构定义来解决。