gpt4 book ai didi

javascript - MongoDB 对象类型/嵌套架构

转载 作者:行者123 更新时间:2023-12-03 03:00:23 25 4
gpt4 key购买 nike

好的,我有一个带有 eventSchema 的 events.js 文件:

var eventSchema = mongoose.Schema({
name:{
type: String,
//required: true
venue:{

}
});

以及带有 field 架构的venue.js:

var mongoose = require('mongoose');

var venueSchema = mongoose.Schema(
{
name:{
type: String,
//required: true
},
postcode:{
type: String,
//required: true
},
town:{
type: String,
//required: true
}
});

我的问题是如何将事件架构中的“ field ”字段链接到 field 架构。因此,本质上,当您创建新事件时,您只能从 field 列表中添加 field 。提前致谢!

最佳答案

您可以通过 id 链接它。您不必在事件架构中添加所有“ field ”字段。

var eventSchema = mongoose.Schema({
name:{
type: String,
//required: true
},
venue_id: Schema.Types.ObjectId,
});

由于您使用的是 Mongoose,因此您可以制作类似字段,

venue_id: { type: Schema.Types.ObjectId, ref: 'Venue' }

它使用 populate方法。

填充是用其他集合中的文档(即文档)自动替换文档中指定路径(即venue_id)的过程与venue_id匹配)。

你可以像这样使用它

event.
findOne({ name: 'somename' }).
populate('venue').
exec(function (err, event) {
if (err) return handleError(err);
});

它将返回事件文档以及与 field ID 匹配的 field 文档,而不仅仅是 field ID。

关于javascript - MongoDB 对象类型/嵌套架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424761/

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