猫鼬聚合管道,$ lookup和$ populate

时间:2020-05-28 22:37:14

标签: mongodb mongoose

我有两个模式/模型:FilePerson。可以使用电子邮件为每个File分配多个Person

我需要这些来填充两个视图:

  • 文件视图,其中显示了已分配给它的所有人员。
  • 人员视图,其中显示了分配给该人员的所有文件。

模式定义:

fileSchema = new mongoose.Schema({
  name: String
  persons: {
    id: mongoose.Type.ObjectId,
    email: String,
    ref: 'person'
  }
});

personSchema = new mongoose.Schema({
  name: String
  files: {
    id: mongoose.Type.ObjectId,    
    ref: 'file'
  }
})

我正在使用axios发送补丁请求,其中的正文是Person电子邮件的数组,需要为其分配File

axios.patch(baseURL/files/:fileId, emails)

如何使用$ lookup或$ populate聚合方法来确保我的filespersons集合都被正确的引用(包括{{ 1}}集合作为参考存储在_id集合中。

0 个答案:

没有答案