2016-04-13 17 views
1

元のmongoose ObjectID文字列ではなく、objectIDメソッド(ValueOf()、To String()など)を保持する代わりに、UUID生成文字列を使用する方法はありますか?uuidをmongooseでobjectIDとして使用

私はUUIDを生成し、私は私のモデルに

と私のマングーススキーマで使用しよう:私のモデル/スキーマ内

var uniqueUUID = uuid.v4(); 
createUser = user({ 
      'myid': uniqueUUID, 
}); 

var userSchema = new mongoose.Schema({ 

_id: Schema.Types.ObjectId 

}); 

は、検証エラーを得ました。

ValidationError: user validation failed 
+1

http://stackoverflow.com/questions/27438882/using-uuids-in-mongoose-for-objectid-references – dcohenb

答えて

0

スキーマに存在しないキーを追加しようとしています。スキーマにはmyidというキーが定義されていません。デフォルトでは、mongooseは事前定義されていないキーを許可しません。

あなたはこのようなものにするためにそれを変更することができます。自動に生成されたuuid.v4値を持つオブジェクトIDをassings

var userSchema = new mongoose.Schema({ 

_id: {type: String, default: uuid.v4} 

}); 

ユーザの使用を作成する:自動に文書のIDを割り当てた

var newUser = new user(); 

。それを保存するためにちょうだい思い出してください。 :)

myidという名前の別のIDフィールドを使用したい場合は、_idがどのように追加されたかに従ってスキーマに追加することができます。

+0

さて、私は自分のコードを間違えました。 _id型はStringでなければなりません。それを今編集する。 – Snekw

関連する問題