我有一个用 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”。但即使那是问题所在,我该如何解决呢?我找不到任何信息。提前谢谢你。
最佳答案
通过将 _id: String,
添加到模式定义中解决。
关于javascript - Mongoose - 检索到的文档中没有 '_id' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208007/