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

标签 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”。但即使那是问题所在,我该如何解决呢?我找不到任何信息。提前谢谢你。

最佳答案

通过将 _id: String, 添加到模式定义中解决。

关于javascript - Mongoose - 检索到的文档中没有 '_id' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37208007/

相关文章:

javascript - 使用 jscript 或 ajax 仅重置 1 DIV

node.js - npm update 取消链接链接包

node.js - NodeJS Sequelize 从查询返回数据

MongoDB $set 聚合

python - 在 pymongo 中使用 $natural sort - MongoDB

javascript - Tensorflow.js LSTM 时间序列预测

javascript - 输入谷歌地图方向

javascript - Sequelize app.post : why "TypeError: Cannot read property ' create' of undefined"?

mysql - 何时使用 MongoDB 或其他面向文档的数据库系统?

javascript - 通过选中 vuetify 中的另一个复选框来禁用复选框