我正在try "使用Node.js与Express和Mongoose开发RESTful API"示例,但MongoDB模式遇到了一个问题:

POST: 
{ title: 'My Awesome T-shirt 2',
  description: 'All about the details. Of course it\'s black.',
  style: '12345' }
{ [MongoError: E11000 duplicate key error index: ecomm_database.products.$style_1  dup key: { : "12345" }]
  name: 'MongoError',
  err: 'E11000 duplicate key error index: ecomm_database.products.$style_1  dup key: { : "12345" }',

模式定义中有一个独特的约束:

var Product = new Schema({  
    title: { type: String, required: true },  
    description: { type: String, required: true },  
    style: { type: String, unique: true },  
    modified: { type: Date, default: Date.now } });

我该怎么摆脱它呢?当我删除unique:true并重新启动应用程序时,架构不会得到更新.

mongodb如何处理模式的"变化"?

推荐答案

mongodb如何处理模式的"变化"

MongoDB是schema-less

唯一能强制实现唯一性的是在索引级别上

Mongodb相关问答推荐

用其他集合中的文档替换嵌套文档数组中的值

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

带dropTarget的MongoDB renameCollection命令是原子的吗

更新值导致错误 Golang MongoDB

优化游戏应用程序的反馈表单后端设计

从 mongodb Golang 检索时判断零等效时间.时间

如何将 json 字符串编组到 bson 文档以写入 MongoDB?

.insertOne 不是函数

为什么mongodb的文档中存储键名

Mongo 可尾游标与 Redis 发布/订阅

MongoDB 聚合 $divide 计算字段

你如何让 mongo 在远程服务器上运行?

无法连接到远程 mongodb 服务器

如何使用node.js http服务器从mongodb返回大量行?

MongoDB 嵌套 OR/AND 在哪里?

mongoose字符串到 ObjectID

错误:需要数据和盐参数

Mongodb 按字段名称查找任何值

全局初始化失败:BadValue Invalid or no user locale set.请确保正确设置 LANG 和/或 LC_* 环境变量

mongodb & max connections最大连接数