出于某种原因,我的应用程序不允许我创建多个配置文件。下面是服务文件中的设置:
//这将查找配置文件(如果存在)
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
我已经在这里查看了类似问题的其他答案,但没有找到适合这个项目的答案。任何帮助都会很好。谢谢
原来这个错误是因为我在mongoDB网站上手动添加了一个集合,可能设置错误。我删除了它,让我的应用程序自己构建集合,它似乎运行良好。谢谢你抽空帮忙!总是赞赏!
在{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