2016-04-13 2 views
1

Как я могу использовать строку, созданную UUID, вместо оригинальной строки ObjectID, сохраняя методы objectID (ValueOf(), To String(), ....)?используя uuid как objectID в mongoose

когда я генерировать 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 не разрешает ключи, которые не были предварительно определены.

Вы можете изменить его, чтобы быть что-то вроде этого:

var userSchema = new mongoose.Schema({ 

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

}); 

Это автоматически assings ИД объекта с генерируемой uuid.v4 значением.

При создании использования пользователем:

var newUser = new user(); 

Тот автоматически назначенный идентификатор для документа. Просто помните, чтобы сохранить его. :)

Если вы хотите иметь другое поле id, которое называется myid, вы можете добавить это в схему, следуя указаниям добавления _id.

+0

Хорошо, я допустил ошибку в своем коде. Тип _id должен быть строкой. Теперь редактируем его. – Snekw

Смежные вопросы