2016-11-17 5 views
2

Сейчас я запускаю mongodb, и я просто понял, что я вставляю в коллекции, и я не уверен, что я предотвращаю дубликаты. Вот как я вставляю:MongoDB вставить без дубликатов

function insertCompanies(companyID, companyURL, companyAppID) { 
    MongoClient.connect(url, function(err, db) { 
     if (err) { 
      console.log(err); 
     } else { 
      console.log("We are connected"); 
     } 

     var collection = db.collection('Companies'); 
     var company = { 
      "companyProfileID": companyID, 
      "url": companyURL, 
      "appID": companyAppID 
     }; 
     collection.insert(company, function(err, result) { 
      if (err) { 
       console.log(err); 
      } else { 
       console.log(result); 
      } 
     }); 
     db.close(); 
    }); 
} 

Я использую NodeJS. Когда пользователь называет метод insertCompanies, если компания уже существует (через companyID или URL), кажется, что коллекция позволяет дублировать.

Есть ли другая функция вставки, которая предотвращает дублирование? Я оглянулся и не мог найти прямого решения, приспособленного ко мне.

+0

Вы также можете добавить уникальный индекс в поле, которое не позволит дублировать –

ответ

1

Ответ не вставить, а не использовать update. Метод update() либо изменяет поля в существующих документах, либо полностью заменяет существующий документ.