我正在写一个mongoose 模式,我想了解它的特性.

以下是我的模式:

var UserSchema = new Schema({
        name: String,
        username: { type: String, required: true, index: { unique: true }},
        password: { type: String, required: true, select: false }
});
  1. 为什么不为'name'声明required-?
  2. 为什么要申报required
  3. select-真/假-是什么意思?
  4. 什么时候应该申报index-为什么?

推荐答案

Why required is not declared for `name' - ?

Answer:如果一个字段是必须填写的,那么在这种情况下,我们会根据需要提及它.所以这里"name"不是必填字段或必填字段.

Why `required' declared?

Answer:如上所述,当一个字段是必须填写的,那么在这种情况下,我们会根据需要提及它.

What is select - true/false -means?

Answer:这意味着在获取文档时,默认情况下不会在数据中返回它.您可以指定默认情况下是从查询结果中包括还是排除此路径.

Schema options

When the index - should declared any why?

Answer:当您经常搜索该字段的数据时,应该声明索引,因此当您在该字段上创建索引时,它不会在所有集合中搜索该字段,它将使用索引搜索该字段的值,并将很快返回结果.

How indexes work in mongodb

Mongodb相关问答推荐

将消息流式传输到WebSocket

try 从数据库创建、获取数据时失败(pymongo、MongoDB、docker-compose)

MongoDB 聚合 groupBy 日期并计算子文档

将数据从一个集合插入另一个集合的聚合

随着时间的推移在 mongodb 中获得

MongoDB聚合:如何将查找结果放入嵌套数组中?

在 Mongo 聚合中,可以通过分组生成 3 个不同的计数

通过 docker 运行的 MongoDB 服务器无法互相看到(名称解析中的临时故障)

创建索引需要很长时间

NoSql 参考数据

$elemMatch 的 MongoDB 索引

带有 jQ​​uery Ajax/JSON 前端的 MongoDB 或 CouchDB 中间件

Mongo:无法在 src/mongo/shell/mongo.js:145 连接到服务器 127.0.0.1:27017

MongoDB的数据库管理工具

使用 mongodb 在数组中查找子文档

try 启用 Mongo DB 身份验证时发生 TypeError

MongoDb 聚合 $match 错误:Arguments must be aggregate pipeline operators

AsQueryable 方法是否在新的 Mongodb C# 驱动程序 2.0rc 中离开?

将 FilterDefinition 转换为可以在 mongo shell 中运行的常规 json mongo 查询

MongoMapper 和迁移