node.js - Mongoose 不强制执行唯一性
问题描述
我有这个架构。它不会在 zipCode 字段中强制执行唯一性。它在我实现时间戳之前的某个时候工作,但现在似乎没有。我不确定我做错了什么。我曾尝试删除数据库,但即使所有新增内容都允许重复。
const ZipCodeSchema = new Schema({
zipCode: {
type: String,
required: true,
unique: true,
index: true
},
price: {
type: Currency,
min: 0,
required: true
},
createdBy: {
type: Schema.Types.ObjectId,
ref: 'Users',
required: true
},
updatedBy: {
type: Schema.Types.ObjectId,
ref: 'Users',
required: true
},
active: {
type: Boolean,
default: true,
},
neighborhood: {
type: String,
required: true,
unique: true
}
},
{
timestamps: true
});
解决方案
在某些时候,无论是手动还是作为安装/启动脚本的一部分,您都需要确保在mongodb 实例上创建索引。一种方法是使用ensureIndexes
方法
ZipCode.ensureIndexes(function (err) {
if (err) return handleError(err);
});
推荐阅读
- javascript - 为什么当我添加 else 块时 else if 块被忽略?
- c++ - 当用户在 QMainWindow 中选择文本时创建上下文菜单
- javascript - 为什么使用事件侦听器检测更改时图标类没有更改?
- javascript - 显示请稍候或加载程序使用 javascript-REST API 调用
- django - 如何在保存中测试 CheckboxSelectMultiple
- c - 未定义对 OpenSSL_version 的引用,链接 openssl 时出错?
- javascript - 创建一个接受两个参数(播放列表对象和艺术家姓名)的函数 removeFromPlaylist
- javascript - 动态添加单选按钮标签 - JavaScript
- c++ - DMA 的同步要求
- python - 烧瓶中的 Python Web 应用程序在本地运行良好,在 Heroku 上抛出 NameError