SailsJS:设置 autoPK:false 仍然会生成 mongodb 的 id 属性
SailsJS: Setting autoPK:false still generates mongodb's id attribute
使用 SailsJS,我试图找出如何将自定义主键用作自动递增的整数。
为此,我通过了 autoPK:false
,但我看到 mongo 仍然使用它的带有 UUID 的 'id' 字段,就好像 Waterline 忽略了我的 autoPK条目。
比如我定义这个模型(配置为mongodb)
module.exports = {
autoPK: false,
attributes: {
name:'string',
personalId: {
type: 'integer',
autoIncrement:true,
primaryKey: true
}
}
}
这是 sails console
的输出:
sails> User.create({name:'Mike'}).exec(console.log)
undefined
sails> null { name: 'Mike',
createdAt: Fri Mar 27 2015 22:11:51 GMT+0300 (IDT),
updatedAt: Fri Mar 27 2015 22:11:51 GMT+0300 (IDT),
id: '5515ab77ac1085260b221cfd' }
我希望看到 personalId:1
或类似的东西而不是 id:'5515ab77ac1085260b221cfd'
。
谢谢。
- Mongo在Sails中的自增不能依次为1、2、3等,永远是Mongo的
ObjectId
.
id
Sails 中的字段是必需的,因为许多约定仍在使用它。关注蓝图操作、actionUtil 等
所以这是我的解决方案,使用这个模型配置:
module.exports = {
autoPK: false,
attributes: {
name:'string',
id: {,
autoIncrement:true,
primaryKey: true,
columnName: 'personalId'
}
}
}
它仍然不会生成 personalId
作为 Mongo 中的列名,但它将使用 Mongo 的默认 ID 约定,即 _id
。 personalId
如果您将数据库切换到另一个数据库,如 MySQL,将生成
。
使用 SailsJS,我试图找出如何将自定义主键用作自动递增的整数。
为此,我通过了 autoPK:false
,但我看到 mongo 仍然使用它的带有 UUID 的 'id' 字段,就好像 Waterline 忽略了我的 autoPK条目。
比如我定义这个模型(配置为mongodb)
module.exports = {
autoPK: false,
attributes: {
name:'string',
personalId: {
type: 'integer',
autoIncrement:true,
primaryKey: true
}
}
}
这是 sails console
的输出:
sails> User.create({name:'Mike'}).exec(console.log)
undefined
sails> null { name: 'Mike',
createdAt: Fri Mar 27 2015 22:11:51 GMT+0300 (IDT),
updatedAt: Fri Mar 27 2015 22:11:51 GMT+0300 (IDT),
id: '5515ab77ac1085260b221cfd' }
我希望看到 personalId:1
或类似的东西而不是 id:'5515ab77ac1085260b221cfd'
。
谢谢。
- Mongo在Sails中的自增不能依次为1、2、3等,永远是Mongo的
ObjectId
. id
Sails 中的字段是必需的,因为许多约定仍在使用它。关注蓝图操作、actionUtil 等
所以这是我的解决方案,使用这个模型配置:
module.exports = {
autoPK: false,
attributes: {
name:'string',
id: {,
autoIncrement:true,
primaryKey: true,
columnName: 'personalId'
}
}
}
它仍然不会生成 personalId
作为 Mongo 中的列名,但它将使用 Mongo 的默认 ID 约定,即 _id
。 personalId
如果您将数据库切换到另一个数据库,如 MySQL,将生成