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' },
  ...
}