我正在mongoose中创建一个新架构并尝试从用户那里获取输入。我希望serverIP
没有重复更新条目,因为添加了unique : true
。但这并没有按预期工作,重复的条目正在通过。
以下是示例代码: -
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var ServerSchema = new Schema({
serverIp: { type : String , unique : true },
Name: { type: String },
serverType: {type: String , required : true },
created_date: {type: Date, default: Date.now},
updated_date: {type: Date, default: Date.now}
});
我为此检查了CreateIndex功能,但不知道如何使用我的代码实现此功能。
我从未在后端部分工作,所以请原谅这是否是一个新手问题。
答案 0 :(得分:3)
尝试在字段serverIp
上创建唯一索引,
ServerSchema.index({serverIp: 1}, {unique: true});
答案 1 :(得分:1)
创建架构后,您必须重新启动mongo。
答案 2 :(得分:1)
在db。
中插入一些记录之后,您似乎已经完成了唯一的索引(在架构级别)请按照以下步骤避免重复。
1)放弃你的数据库:
$ mongo
> use <db-name>;
> db.dropDatabase();
2)现在在模式级别进行索引,你已经完成了。
它将避免使用相同的字段serverIp(在您的情况下)值插入重复记录。
为确保索引,请使用命令
> db.db_name.getIndexes()
答案 3 :(得分:1)
我有同样的问题试图为我的文章标题添加唯一:true。我删除了数据库,重新启动了我的本地服务器并在终端中重新启动了mongo。这是唯一对我有用的东西。