jugglingdb - установка поля первичного ключа
Можно ли указать, какое поле должно быть полем "id"? Я определяю свою схему с помощью:
var Person = app.ormDb.define('person', {
id : { type: String, index: true, default: function () { return uuid.v4(); } },
oAuthID : { type: String, index: true },
name : { type: String },
gender : { type: String },
birth : { type: Date },
email : { type: String },
imageID : { type: String },
favorites : { type: JSON, default: function() { return {cars : [], animals : []}; } },
date : { type: Date, default: function() { return new Date(); } },
updated : { type: Date, default: function() { return new Date(); } }
});
и мой определил id
поле отображается в MongoDB, но когда я использую jugglingdb для поиска человека, возвращаемое значение для Person.id является значением ObjectId MongoDB _id. Так что мой id
скрыт.
1 ответ
_id
зарезервирован в MongoDB в качестве первичного ключа. Это объяснило бы, почему это не может быть изменено. Вы можете поместить в нее любое значение, если оно уникально. Надеюсь, это поможет.
В настоящее время также существует открытая проблема с адаптером jugglingdb-mongodb. Это устраняет причину, по которой идентификатор не возвращается. В основном если object.id
существует при вызове create, он удаляется перед вставкой в коллекцию.