将网站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,但你的用例有点奇怪无论如何:)