我有一个用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'。但即使这是问题,我该如何解决呢?我找不到任何信息。提前谢谢。
答案 0 :(得分:4)
通过将_id: String,
添加到架构定义来解决。