首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sails-mongo适配器:来自数据库适配器的意外错误:为‘id`提供的主键值无效。无法将`94...`解释为Mongo id

Sails-mongo适配器:来自数据库适配器的意外错误:为‘id`提供的主键值无效。无法将`94...`解释为Mongo id
EN

Stack Overflow用户
提问于 2020-06-07 10:14:17
回答 1查看 269关注 0票数 1

我的sails应用程序在连接到mysql数据库时运行良好。然而,我需要切换到mongoDB,因为这是项目的一个要求,这就是我面临的问题。

我的模型有一些关系,为了让它工作并实现这一点,我不得不做一些修改,其中包括以下内容:我使用uuid为每个模型设置主键( id ) (id之前是由mysql自动生成的)。但是,当我尝试向服务器提交请求时,我遇到了以下错误:

代码语言:javascript
复制
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的示例:

代码语言:javascript
复制
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',
    },

  },

};

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 18:51:26

我找到了一个解决问题的捷径。我不需要使用uuid来设置主键。Sails已经在config.models.js中使用下面的代码片段与mongo db连接并方便地设置主键。

代码语言:javascript
复制
attributes: {
  ...
  //id: { type: 'number', autoIncrement: true, },
  id: { type: 'string', columnName: '_id' },
  ...
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62240118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档