gpt4 book ai didi

mongoose - 使用 mongoose 在 mongodb 中存储应用程序/站点设置

转载 作者:行者123 更新时间:2023-12-04 08:55:15 24 4
gpt4 key购买 nike

我一直在开发一个基于 node.js 的站点,该站点已经成功运行,并且使用 mongoose 使用 mongodb 作为后端存储。

问题是,我想为站点实现一些可配置的设置(应该能够使用/backend/页面进行配置)。

所以我必须找到一种方法来使用 Mongoose 存储所有这些设置,但我无法提供适合该事物的架构。

var mongoose        = require('mongoose');

var SettingsSchema = new mongoose.Schema({
});

mongoose.model('Settimgs', SettingsSchema);

无论如何我可以强制模式只有一个文档吗?所以我可以只在一个文档中使用上述架构,并将所有需要的设置放在那里。

除了我提出了另一个想法,其中 settings-schema 集合将托管多个文档,每个文档都有其唯一的部分名称,如下所示,但是每个部分的架构内容应该不同。我提出的一个想法是将特定于部分的 json 存储为对象数据而不提供模型详细信息;
var mongoose        = require('mongoose');

var SettingsSchema = new mongoose.Schema({
name: { type: String, lowercase: true, trim: true, unique: true, required: true }, // the settings section name
...
JSON-Object or JSON-string here?
Is {data: Object} a possible usage?
});

mongoose.model('Settimgs', SettingsSchema);

但是,如果我能找到一种方法来为部分定义模型,它会更好且可测试——就像后端设置的模型和前端设置的另一个模型,它们应该以某种方式全部存储在设置集合中。

所以我想要的是;
var BackendSchema = new mongoose.Schema({
.. backend related settings here..
});

var FrontendSchema = new mongoose.Schema({
.. frontend related settings here..
});

最后有一个主设置模式来覆盖这些并将所有这些文档保存到一个集合中。

我已经搜索了一段时间,看看是否有关于该主题的有趣读物,但没有运气——如果你能发帖以防万一你知道的话会很好。

最佳答案

您应该阅读有关 Mongoose 鉴别器的信息 here

根据文档

Discriminators are a schema inheritance mechanism. They enable you to have multiple models with overlapping schemas on top of the same underlying MongoDB collection.



我希望这对你有帮助

关于mongoose - 使用 mongoose 在 mongodb 中存储应用程序/站点设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121757/

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