当前位置: 首页 > 知识库问答 >
问题:

e11000重复密钥错误集合{info.subs: null}

赏夕
2023-03-14

出于某种原因,我的应用程序不允许我创建多个配置文件。下面是服务文件中的设置:

//这将查找配置文件(如果存在)

async getProfile(user) {
    let profile = await dbContext.Profile.findOne({
      email: user.email
    });
    profile = await createProfileIfNeeded(profile, user);
    await mergeSubsIfNeeded(profile, user);
    return profile;
  }

//如果一个不存在的话,应该创建一个

async function createProfileIfNeeded(profile, user) {
  if (!profile) {
    profile = await dbContext.Profile.create({
      ...user,
      subs: [user.sub]
    });
  }
  return profile;
}

它适用于第一个用户,但当我创建另一个用户时,我会得到错误:{“error”:{“message”:“MongoError:E11000重复键错误集合:TownMiner.profiles index:info.subs_1 dup key:{info.subs:null}”,“status”:400},“url”:/api/profile“}

令人困惑的是,潜艇是通过Auth0设置的。当我用服务器中的断点查看它时,它显示了那里的所有信息。此外,当我查看我的MongoDB集合时,没有任何地方说任何值是“空”的。我现在已经为几个项目使用了相同的设置,它们都工作得很好(这个新项目是从同一个模板克隆的)。还注意到,以确保子信息是所有不同的,它是。

这是MongoDB集合:

_id: ObjectId("***")
subs:Array
0:"auth0|***dda6a"
1:"auth0|***aa288
name:"kevin@test.com"
picture:"https://s.gravatar.com/avatar/c6788456e2639d2d10823298cc219aaf?s=480&r..."
email:"kevin@test.com"
createdAt:2020-08-07T21:23:05.867+00:00
updatedAt:2020-08-17T17:24:05.583+00:00
__v:1

我已经在这里查看了类似问题的其他答案,但没有找到适合这个项目的答案。任何帮助都会很好。谢谢

共有2个答案

许明朗
2023-03-14

原来这个错误是因为我在mongoDB网站上手动添加了一个集合,可能设置错误。我删除了它,让我的应用程序自己构建集合,它似乎运行良好。谢谢你抽空帮忙!总是赞赏!

屈晨
2023-03-14

{info.subs: 1}上的Town Miner.profiles集合中有一个唯一的索引。

该示例文档不包含info字段,因此在该文档的索引中输入的值将为null

由于索引被标记为唯一,mongod将不允许您插入任何其他也将被输入到信息中的文档。subs使用null索引。

 类似资料:
  • 我在一个djs机器人工作,我遇到了一个错误,我不知道如何修复我已经看了https://docs.mongodb.com/manual/indexes/和NodeJs,摩卡和猫鼬,但似乎没有什么帮助这里是信息- 错误发生在这里- 这是我的服务器模型/服务器架构- 最后,这是我得到的错误-

  • 在node.js,从一个javascript循环,我试图插入一个json对象到一个mongoDB集合,但得到重复的键错误_id列。 {MongoError:E11000重复密钥错误集合:app.Tab2017index:id dup-key:{:ObjectId('5cbc813227b2ca2864b3c66a')} 这是我的javascript代码的一部分,它导致了错误。 以上代码在控制台上显

  • 下面是模型中的架构- 这就是我在控制器中使用它的方式- 我就是这样把它保存在数据库里的- 错误- 我检查了数据库集合,没有这样的重复条目存在,让我知道我做错了什么? FYI-和正在获取值。 我也检查了这篇文章,但没有帮助堆栈链接 如果我完全删除,它就插入文档,否则它会抛出错误“重复”错误,即使我在local.email中有一个条目

  • MongoError:E11000重复密钥错误集合:myFirstDatabase。tours索引:rating_1 dup键:{rating:null} 当我使用postman创建数据时,我不理解这个错误,说dup key:{rating:null},在shcema中没有任何评级键,这是从哪里来的?为什么我只能创作一次。 这是我的代码(tourSchema) 这是我试图添加的数据 }

  • 我试图从我的模式中的数组中删除一个特定的值(一个游戏),这是代码: 模式: 错误: MongoError:E11000重复密钥错误集合:mountain。用户索引:游戏。密码_1 errmsg:'E11000重复密钥错误集合:mountain。用户索引:游戏。密码\u 1 dup密钥:{games.password:null}',[Symbol(mongoErrorContextSymbol)]:

  • 线程“main”com中出现异常。mongodb。MongoException$DuplicateKey:{“serverUsed”:“localhost/127.0.0.1:27017”,“err”:“E11000 duplicate key error index:twitterdb03.LevelAFollowers。$id dup key:{:ObjectId('52d5636de4086