首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速选择多模型数据

快速选择多模型数据
EN

Stack Overflow用户
提问于 2015-05-11 08:01:27
回答 2查看 414关注 0票数 1

我正在学习平均堆栈,并希望在使用express进行路由时选择多个模型。我需要选择一个模型,然后根据它的值,其他几个。以下是主要的模型:

代码语言:javascript
复制
var mongoose = require('mongoose');
var MatchSchema = new mongoose.Schema({
    title: String,
    type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Game' }],
    owner: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
    players: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }]
});
mongoose.model('Match', MatchSchema);

根据类型所有者和玩家,我需要选择游戏和用户模型,但我被困在这样做。这是我目前的路线,它只选择匹配模型。

代码语言:javascript
复制
router.get('/games', function (req, res, next) {
  Match.find(function (err, matches) {
    if (err) {
      console.log(err);
      return next(err);
    }

    res.json(matches);
  });
});

所以我需要循环所有的比赛,对于每一个选择属于它的类型的游戏模型和属于所有者和玩家的用户模型,我将如何去做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 08:56:38

如果我理解你的问题正确,那么你必须填充你的子文档。

猫鼬有能力为你做这些。基本上,你必须这样做:

代码语言:javascript
复制
router.get('/games', function (req, res, next) {
    Match
    .find({})
    .populate('type').populate('owner').populate('players')
    .exec(function (err, matches) {
      if (err) return handleError(err);
      res.json(matches);
    });
});

有关更多信息,请参阅猫鼬文档:http://mongoosejs.com/docs/populate.html

票数 0
EN

Stack Overflow用户

发布于 2015-05-11 08:08:10

您可以使用嵌套代码,如

代码语言:javascript
复制
Match.find(function (err, matches) {
    if (err) {
      console.log(err);
      return next(err);
    }
    Game.find(function (err, games) {
        if (err) {
          console.log(err);
          return next(err);
        }
        Users.find(function (err, user) {
            if (err) {
              console.log(err);
              return next(err);
            }

            res.json({matches:matches, games:games, user:user});
          });
      });
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30162405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档