Как использовать внешние ключи mongodb ref?Mongoose & NodeJS - PullRequest
0 голосов
/ 08 марта 2019

Я немного новый 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%.Я мог добавить книги, зарегистрированные в моей учетной записи пользователя, однако проблема возникла, когда я создал новую учетную запись пользователя и хотел добавить книгу, которая уже существует в пользовательских книгах.

Это ошибка:

E11000 коллекция ошибок повторяющегося ключа: bookstore.libraries index: bookid_1 dup key.

Он действует так, как будто имеет уникальное ограничение: «true», но я, честно говоря, не уверен.

Есть идеи?

Мой подход и схема с MongoDB совершенно неверны?

1 Ответ

0 голосов
/ 08 марта 2019

Мой приятель помог мне исправить это на https://t.me/MongodbHelp

Похоже, индексы испортились.Я запустил это в коллекциях:

db.collection.getIndexes()
db.collection.dropIndexes()

, и это исправило ошибки.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...