如何避免mongoose中的重复条目

时间:2017-02-06 11:22:25

标签: json node.js mongodb mongoose

我正在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功能,但不知道如何使用我的代码实现此功能。

我从未在后端部分工作,所以请原谅这是否是一个新手问题。

4 个答案:

答案 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。这是唯一对我有用的东西。