我是一个新的mongodb,但目前正在学习JAMStack。我来自python / sql背景。
因此,对于一个学习这些新语言的有趣项目来说,我正在建立一个图书数据库。
截至目前,我有3个收藏集。 首先是用户-包含objID,用户名和散列的pw。 第二个集合是书店,其中包含添加到数据库中的书。 第三个集合称为userBooks / library,基本上是用户拥有的书籍的集合,例如
const userBooks = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
userid: {type: Schema.Types.ObjectId, ref: 'User'},
bookid: {type: Schema.Types.ObjectId, ref: 'Book'},
});
此方法可以100%罚款。我可以将登录的图书添加到我的用户帐户中,但是当我创建一个新的用户帐户并想添加userBooks中已经存在的图书时出现问题。
这是错误:
E11000重复键错误集合:bookstore.libraries索引: bookid_1 dup键。
它的行为就像有一个独特的“ true”约束,但老实说我不确定。
有什么想法吗?
我的MongoDB方法和架构是否完全错误?
答案 0 :(得分:0)
我的同伴帮助我修复了https://t.me/MongodbHelp
似乎索引被弄乱了。 我在集合中运行了这个
db.collection.getIndexes()
db.collection.dropIndexes()
它纠正了错误。
谢谢!