node.js - MongoDB ObjectId 使用

标签 node.js mongodb mongoose objectid

我在我的 NodeJS REST 项目中使用 MongoDBMongoose ODM:

我的模型架构是:

var playerSchema = new mongoose.Schema({
    name: String,
    team: mongoose.Schema.Types.ObjectId
})

服务器端:

app.post('/players', function(req, res) {
  Players.find(function(err, players) {
    res.json(players);
  });
});

响应是:

...
{
  "_id": "511a6010e6ca7b0fe0af02ff",
  "name": "player-1",
  "team": "511a53e2e6ca7b151c09ce8d"
}
...

但我想要类似的东西:

{
  "_id": "511a6010e6ca7b0fe0af02ff",
  "name": "player-1",
  "team": {
    _id: "511a53e2e6ca7b151c09ce8d"
    name: "team-1"
  }
}

我做错了什么? 或者我还没有真正理解ObjectId?

谢谢!

最佳答案

您仅获取具有团队文档 ID 的玩家文档。

因此,对于每个球员,您还必须获得团队文档。

Players.find(function(err, players) {
   for(var i in players){
      Team.findById(players[i].team,function(error,teams){
          players[i].team = teams;
      })
   }
    res.json(players);
});

关于node.js - MongoDB ObjectId 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14836374/

相关文章:

ios - 表情符号图标中断 REST 调用

javascript - 如何通过键从 MongoDB 集合中删除字段?

node.js - Nodejs MongoDB 具有异步功能更新文档

mongodb 3.4.2 InvalidIndexSpecificationOption错误: The field 'unique' is not valid for an _id index specification

javascript - 无法从 Web 应用程序的 MongoDB 数据库获取数据

javascript - Lodash 与 Mongoose 合并

node.js - 从字符串表达渲染模板

node.js - 在Docker上安装的npm got error不支持Node.js v13

node.js - 用于 Meteor 文件存储的 MongoDB GridFS 与 AWS S3

javascript - 删除多个文档并将它们传递给回调