我知道MongoDB是无模式的.但是,我有一些对象/实体的数据模型,我有一组明确定义的属性,它们将包含它们.例如,如果我有一个学生实体,我知道它的json看起来像
{
name: "string",
id: "int",
class: "string"
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用MongoDB定义此架构?如果无法做到这一点,那么如何验证用户是否已发送完整集来创建新学生?
Mongodb不是一个适用于所有问题的神奇解决方案.其中一个优点是无模式,所以如果你的集合具有绝对固定的模式 - 那么考虑使用其他sql dbs(你将摆脱大量的开销).
如果你真的想要定义模式 - 在vanilla mongo中不可能这样做,但是与许多流行的技术一样,有一些可用的库.其中一个允许定义模式的是Mongoose.它不是唯一的,你会发现很多类似的工具.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var blogSchema = new Schema({
title: String,
author: String,
body: String,
comments: [{ body: String, date: Date }],
date: { type: Date, default: Date.now },
hidden: Boolean,
meta: {
votes: Number,
favs: Number
}
});
Run Code Online (Sandbox Code Playgroud)
PS如果您不想使用任何其他库,您可以在应用程序层中定义架构并在将其添加到db之前验证每个文档,但在开始使用新技术之前,很高兴看到它是否适合.为了使用技术而使用技术从来都不是一个好主意.
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |