我有一个集合作为设备,另一个集合作为调度程序。设备包含设备作为数组,现在每个设备都有对象ID,我想在我的新模式中使用它作为参考,名为Schedulers。
这就是我的要求:
var SchedulerSchema = new Schema({ applianceId: {
type: Schema.ObjectId,
ref: 'Device.appliances'
});
如果我需要链接设备字段,这是我的设备集合中的数组,那么应该是什么。
答案 0 :(得分:0)
关于如何引用的一个小例子。
填充是使用其他集合中的文档自动替换文档中指定路径的过程。我们可以填充单个文档,多个文档,普通对象,多个普通对象或从查询返回的所有对象。我们来看一些例子。
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var personSchema = Schema({
_id : Number,
name : String,
age : Number,
stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
var storySchema = Schema({
_creator : { type: Number, ref: 'Person' },
title : String,
fans : [{ type: Number, ref: 'Person' }]
});
var Story = mongoose.model('Story', storySchema);
var Person = mongoose.model('Person', personSchema);
到目前为止,我们已经创建了两个模型。我们的Person模型将其story字段设置为ObjectIds数组。 ref选项告诉Mongoose在填充期间使用哪种模型,在我们的例子中是Story模型。我们在这里存储的所有_ids必须是Story模型中的文档_ids。我们还将Story _creator属性声明为Number,与personSchema中使用的_id相同。将_id的类型与ref的类型相匹配非常重要。
注意: ObjectId,Number,String和Buffer可用作refs。
浏览该链接以获取更多信息:http://mongoosejs.com/docs/populate.html