Sails-mongo 适配器:来自数据库适配器的意外错误:为“id”提供的主键值无效。无法将“94...”解释为 Mongo id
Sails-mongo adapter: Unexpected error from database adapter: Invalid primary key value provided for `id`. Cannot interpret `94...` as a Mongo id
我的 sails 应用程序在连接到 mysql 数据库时运行良好。然而,我需要切换到 mongoDB,因为这是项目的要求,我面临的问题也随之而来。
我的模型有一些关系才能工作,为了实现这一点,我必须进行一些修改,包括以下内容:我使用 uuid 为每个模型设置主键 (id)( id 之前是由 mysql 自动生成的)。然而,当我尝试向服务器提交请求时,我遇到了错误:
AdapterError: Unexpected error from database adapter: Invalid primary key value provided for `id`. Cannot interpret `9456b206-ebcf-4a6d-b81c-93964c027f04` as a Mongo id.
(Usually, this is the result of a bug in application logic.)
这是我的一个模型的示例 - picked.js:
module.exports = {
attributes: {
userId: {
type: 'string',
required: true,
//unique: true,
},
comment:{
type: 'string',
required: true
},
createdBy:{
type: 'string',
required: true
},
info: {
model: 'personalinfo'
},
admin: {
model: 'admin'
},
id:{
type: 'string',
},
},
};
我找到了解决问题的捷径。我不必使用 uuid 来设置主键。 Sails 已经使用 config.models.js 中的以下代码片段与 mongo 数据库连接并方便地设置主键。
attributes: {
...
//id: { type: 'number', autoIncrement: true, },
id: { type: 'string', columnName: '_id' },
...
}
我的 sails 应用程序在连接到 mysql 数据库时运行良好。然而,我需要切换到 mongoDB,因为这是项目的要求,我面临的问题也随之而来。
我的模型有一些关系才能工作,为了实现这一点,我必须进行一些修改,包括以下内容:我使用 uuid 为每个模型设置主键 (id)( id 之前是由 mysql 自动生成的)。然而,当我尝试向服务器提交请求时,我遇到了错误:
AdapterError: Unexpected error from database adapter: Invalid primary key value provided for `id`. Cannot interpret `9456b206-ebcf-4a6d-b81c-93964c027f04` as a Mongo id.
(Usually, this is the result of a bug in application logic.)
这是我的一个模型的示例 - picked.js:
module.exports = {
attributes: {
userId: {
type: 'string',
required: true,
//unique: true,
},
comment:{
type: 'string',
required: true
},
createdBy:{
type: 'string',
required: true
},
info: {
model: 'personalinfo'
},
admin: {
model: 'admin'
},
id:{
type: 'string',
},
},
};
我找到了解决问题的捷径。我不必使用 uuid 来设置主键。 Sails 已经使用 config.models.js 中的以下代码片段与 mongo 数据库连接并方便地设置主键。
attributes: {
...
//id: { type: 'number', autoIncrement: true, },
id: { type: 'string', columnName: '_id' },
...
}