2017-02-06 53 views
1

私はmongooseで新しいスキーマを作成し、ユーザからの入力を試みています。私は、serverIPの重複エントリが更新されていないことを願っています。そのためには、unique : trueが追加されています。しかし、これは期待どおりに動作していないし、エントリが重複しています。mongooseの重複したエントリを避ける方法

は、以下のコード例である: -

私はこのために CreateIndex機能をチェックしましたが、私のコードでこれを実装する方法がわからない
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} 
}); 

私はバックエンドで作業したことがないので、これが初心者の質問であればお試しください。

答えて

1

あなたがDBにいくつかのレコードを挿入した後(スキーマ・レベルで)独自のインデックス付けを行っているようです。

次の手順で重複を避けるようにしてください。

1)あなたのデシベルをドロップ:

$モンゴ

> use <db-name>; 

> db.dropDatabase(); 

2)今、あなたはすでに行っているスキーマ・レベルでインデックス作成を行います。

同じフィールドserverIp(あなたの場合)の値を使用して重複するレコードの挿入を避けることができます。

とインデックスを確保するため、コマンドを使用し

> db.db_name.getIndexes() 
1

スキーマの作成後にmongoを再起動する必要があります。

+0

ありがとうございましたが、私の問題は解決しませんでした。 – TheMightyNight

+1

'serverIp:{タイプ:文字列、インデックス:{ユニーク:真}}' –

3

フィールドserverIpに一意のインデックスを作成しようと、

ServerSchema.index({serverIp: 1}, {unique: true}); 
1

私はユニークな追加しようとして同じ問題だった:私の記事のタイトルのために真を。私はdbを落とし、私のローカルサーバーを再起動し、私のターミナルでmongoを再起動しました。それが私のために働くように思えた唯一のものです。

関連する問題