在猫鼬中填充两个集合

时间:2020-04-10 04:45:45

标签: node.js mongoose mongoose-populate

这是我的用户架构:

  _id: mongoose.Schema.Types.ObjectId,
  name: String,
  username: String,
  password: String,
  googleId: String,
  files: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: "File"
  }]
});

这是我的文件架构:

  leader: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "User"
  },
  p_name: String,
  trade: String,
  description: String
});

这是文件的POST请求:

  const file1 = new File({
    p_name: req.body.p_name,
    trade: req.body.trade,
    description: req.body.description,
    leader: User._id // assign the _id from the person
  });
  User.findById(req.user.id, function(err, foundUser) {
    if (err) {
      console.log(err);
    } else {
      if (foundUser) {
        console.log(foundUser.name);
        foundUser.files = file1;
        file1.save(function(err) {
          if (err) {
            console.log(err);
          }
          res.redirect("/afterlogin");
        });
      }
    }
  });
});

这是GET请求:

  User.findById(req.user.id, function(err, foundUser) {
    if (err) {
      console.log(err);
    } else {
      if (foundUser) {
        console.log(foundUser.name);
        res.render("afterlogin", {
          ename: foundUser
        });
      }
    }
  }).populate("files").exec(function(err, c) {
    if (err) {
      console.log(err);
    }
    console.log(c.files);
  });;
});

问题是当我尝试获取文件时,它只是给我一个空数组。

console.log(c.files);

输出

[]

在控制台窗口中。

0 个答案:

没有答案