我尝试在我的keystone events
模型中添加类似id的列。
我有以下
// models/Event.js
var keystone = require('keystone'),
Types = keystone.Field.Types;
var Event = new keystone.List('Event');
Event.add({
FB_event_id: { type: Types.Number, required: true, initial: true },
name: { type: Types.Text },
FB_event_name: { type: Types.Text },
description: { type: Types.Textarea },
start_time: { type: Types.Datetime },
end_time: { type: Types.Datetime },
is_date_only: { type: Types.Boolean },
location: { type: Types.Text },
owner_name: { type: Types.Text },
updated_time: { type: Types.Datetime },
venue_name: { type: Types.Text }, // typically given if lat/long data isn't
venue_city : { type: Types.Text },
venue_lat : { type: Types.Number },
venue_long : { type: Types.Number },
venue_state : { type: Types.Text },
venue_street : { type: Types.Text },
venue_zip : { type: Types.Number },
cover_photo: { type: Types.S3File }
});
Event.register();
在管理员界面中我看到270,385,519,824,039
FB_event_id
更多的是数量而不是标识号。如何删除这些逗号?使用不同的FieldType?
反正有没有访问mongoose ObjectId
字段类型? http://mongoosejs.com/docs/schematypes.html我认为那将是完美的。
这纯粹是一个美学问题(也许是语义)。 id在数据库中没有逗号存储。
答案 0 :(得分:0)
您可以通过指定format
选项来控制此操作,如果您希望将其设置为false
以完全禁用格式设置:
FB_event_id: { type: Types.Number, format: false, required: true, initial: true }
(我刚刚更新了文档,特别提到您可以将此选项设置为false
以完全禁用格式化)
ObjectId
字段类型不是您之后的内容;这些由Relationship
字段类型用于链接到数据库中的其他文档,并且只应用于存储Mongo ObjectID。任何其他值都会导致错误。
就个人而言,我经常将String
字段用于ID类型字段,它与Number
字段一样有效,并减少了与解析数字相关的意外行为的可能性的JavaScript。