gpt4 book ai didi

mongodb - 如何将数组 id 引用到另一个集合

转载 作者:行者123 更新时间:2023-12-02 22:15:42 24 4
gpt4 key购买 nike

我有一个集合作为设备,另一个集合作为调度程序。设备包含作为数组的设备,现在每个设备都有对象 ID,我想在名为 Schedulers 的新架构中将其用作引用。

这就是我要问的:

var SchedulerSchema = new Schema({ applianceId: {
type: Schema.ObjectId,
ref: 'Device.appliances'
});

如果我需要链接设备字段(我的设备集合中的数组),应该引用什么。

最佳答案

关于如何引用的小示例。

填充是用其他集合中的文档自动替换文档中指定路径的过程。我们可以填充单个文档、多个文档、普通对象、多个普通对象或从查询返回的所有对象。让我们看一些示例。

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 模型将其 Stories 字段设置为 ObjectId 数组。 ref 选项告诉 Mongoose 在填充过程中使用哪个模型,在我们的例子中是 Story 模型。我们在这里存储的所有 _ids 必须是 Story 模型中的文档 _ids。我们还将 Story _creator 属性声明为 Number,与 personSchema 中使用的 _id 类型相同。将 _id 的类型与 ref 的类型相匹配非常重要。

注意: ObjectId、Number、String 和 Buffer 可用作引用。

通过链接了解更多信息:http://mongoosejs.com/docs/populate.html

关于mongodb - 如何将数组 id 引用到另一个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40338905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com