Проверка в вашем утверждении:
Предположим, что someId1 уже существует. Я не хочу переопределять это. Я просто хочу пропустить это.
Итак, вы просто хотели пропустить дублирующиеся документы, так как вы не хотите обновлять дублирующиеся документы с последними данными - так что нет необходимости использовать .update()
, вы все еще можете сделать это, используя .insertMany () , передав флаг ordered
в опциях запроса:
Заказано: Необязательно. Логическое значение, указывающее, должен ли экземпляр mongod выполнять упорядоченную или неупорядоченную вставку. По умолчанию true .
db.collection.insertMany(
[ <document 1> , <document 2>, ... ],
{
ordered: <boolean>
}
)
Ваш код:
dbo.collection(collectionName).insertMany(myExampleData, {ordered : false }).catch(err=>{
console.error(err);
})
Как будто вы проверяете по _id
, который будет иметь уникальный индекс по умолчанию и любые входящие дубликаты на самом деле вызовут ошибку. С ordered : false
мы делаем эту операцию вставки неупорядоченной из-за того, что мы пропускаем все входящие дубликаты и продолжаем работу, фактически исключая любые ошибки.