我有一个用流星和外部nodejs服务器编写的网站,可以与流星的mongo一起使用。我在流星侧的集合tradeOffers
中创建新文档,并在外部服务器上轮询此集合中的新文档(我使用猫鼬)。除了猫鼬返回没有“_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”字段,而用猫鼬创建的文档具有“ObjectId”类型的“_id”。但即使这是问题所在,我该如何解决它?我找不到任何信息。提前感谢您。
通过在模式定义中添加_id: String,
来解决。