Я пишу код, используя node-mongodb-драйвер непосредственно в nodeJS.Я настроил коллекцию в своей базе данных, которая использует мое собственное пространство _id
, где каждый уникальный документ гарантированно имеет уникальный _id
.Тем не менее, при добавлении элементов в базу данных существует высокая вероятность, что один и тот же элемент будет вставлен в коллекцию более одного раза, что означает попытку использовать один и тот же _id
более одного раза.
Что я делаю сейчас, чтобы избежать каких-либо проблем, это позвонить collection.findOne(_id:ID)
перед вставкой, чтобы убедиться, что я не пытаюсь вставить документы, которые уже есть в коллекции.Однако, так как я добавляю много документов за раз, и это должно быть асинхронно, я сохраняю большое количество переменных, чтобы при вызове findOne()
вызывать правильную переменную (если применимо)).
Однако я понял, что могу покончить с сохранением переменных, если просто не удосужился проверить, существует ли уже документ, и просто пошел дальше и вставил их.Если в коллекции уже есть документ с таким же _id
, я просто получу сообщение об ошибке, говорящее, что _id
уже существует, и код продолжит работать.Подобное кодирование уменьшит время работы моего программного обеспечения (меньше вызывается функций) и пространство в ОЗУ, которое оно занимает (гораздо меньше переменных сохраняется).
Однако я хотел посмотреть, не подумал ли кто-нибудь, что есть какая-то причина не делать этого.Когда такая функция, как insert()
возвращает ошибку, происходит ли что-то плохое или может произойти, чего я не знаю?
Лучше всего, и спасибо,
Сами