javascript - Mongoose .js : force always populate

标签 javascript node.js mongodb mongoose

有没有办法指示模型总是填充某个字段?

类似于在任何查找查询中填充“字段”:

{field: Schema.ObjectId, ref: 'Ref', populate: true}

?

最佳答案

在 Mongoose 4.0 中,您可以使用查询 Hook 来自动填充您想要的任何内容。

以下示例来自 introduction document瓦莱里·卡尔波夫(Valeri Karpov)。

模式定义:

var personSchema = new mongoose.Schema({
  name: String
});

var bandSchema = new mongoose.Schema({
  name: String,
  lead: { type: mongoose.Schema.Types.ObjectId, ref: 'person' }
});

var Person = mongoose.model('person', personSchema, 'people');
var Band = mongoose.model('band', bandSchema, 'bands');

var axl = new Person({ name: 'Axl Rose' });
var gnr = new Band({ name: "Guns N' Roses", lead: axl._id });

查询 Hook 以自动填充:

var autoPopulateLead = function(next) {
  this.populate('lead');
  next();
};

bandSchema.
  pre('findOne', autoPopulateLead).
  pre('find', autoPopulateLead);

var Band = mongoose.model('band', bandSchema, 'bands');

关于javascript - Mongoose .js : force always populate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592351/

相关文章:

javascript - React JS - 为什么这个变量的行为像一个函数?

javascript - ajax 请求在 OS X Paw 应用程序和 cURL 中工作,但不能像 Javascript/jQuery 那样工作

javascript - POST 数据并重定向到 url JavaScript

javascript - 如何在 Node 服务器上强制用户从服务器端注销并对Web应用程序使用react?

mongodb 多个匹配条件并返回具有通用名称的文档

javascript - 压缩数组作为对象的键和值

javascript - AWS Cognito GetUser API 未返回所有属性

node.js - 如何从本地网络中的另一台电脑访问我的 React 应用程序?

javascript - 如何在一个 Angular 应用程序中访问两个 Mongo 数据库?

mysql - 哪个最适合我的需求 : MongoDB, CouchDB 或 MySQL。相关定义的标准