将网站configuration存储为Mongoose模型
我有网站configuration(目前存储为JSON文件),我想将其移动到MongoDB,可能使用Mongoose来处理读写操作,并通过架构进行validation。
configuration是一个有限的键的对象,类似于:
{ siteOffline: false, storeOffline: false, priceMultipliers: { a1: 0.96 a2: 0.85 }, ... }
是否应该使用键值条目进行收集? 在这种情况下不知道如何执行Mongoose模式。
是否应该使用单个文件进行收集? 不确定如何保证一次只有一个文档。
任何其他选项?
好的,一次一件事:
如果你想使用mongoose,你应该有你的完整configuration作为一个文件:
var siteConfig = new Schema({ siteOffline: Boolean, storeOffline: Boolean, priceMultipliers: { a1: Number a2: Number } });
那么,如果你想要一个只有一个文档的集合,你可以使用MongoDB上限集合
我build议你通过Mongoose允许的多个选项
您的one-doc集合的Schema将如下所示:
var config = new Schema({ siteOffline: Boolean, storeOffline: Boolean, priceMultipliers: { a1: Number a2: Number } }, { collection:'config', capped: { size: 1024, max: 1} });
有一个讽刺的是有一个“收集”只有一个文件虽然:)
另一个可以更好地工作的“破解”解决scheme是使用安全字段(其中不能更改值),并在该字段中添加唯一索引。 阅读此信息以获取更多信息该字段可以出现在文档中,但不在模型中(虚拟)。 再一次,这是hacky,但你的用例有点奇怪无论如何:)