MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Защо MongoDB изисква `unique:true` за създаване на колекция?

Току-що се опитах да репликирам сценария, който описахте по-горе, от моя страна с почти същата версия на mongoose и MongoDB, работи добре, документите бяха създадени (и запазени) без уникалното свойство на firstName поле в схемата. Не мисля, че причината вашите обекти да не са били записани в DB е поради липсата на уникалното свойство.

Освен това, причината колекцията да не е създадена без уникалното свойство е, че mongoose (или самата MongoDB) няма да създаде колекция, докато не вмъкнете данни в колекцията. Чрез добавяне на уникалното свойство MongoDB ще трябва да създаде индексен документ за това свойство в колекцията, като впоследствие добави данни към колекцията и затова изглежда, че колекцията е създадена само след добавяне на уникалното свойство. Така че докато db.<collectionName>.find({} ) може да не върне нищо, db.<collectionName>.getIndexes() ще ви даде нещо.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ръководство за MongoDB с Java

  2. В mongoDb, как премахвате елемент от масива по неговия индекс?

  3. грешка в monogdb errmsg:WiredTigerIndex::insert:ключът е твърде голям за индексиране, неуспешно

  4. MongoDB 4.0 JRException:Опцията 'cursor' е задължителна, с изключение на aggregate с аргумента обяснение

  5. Запитване за вградени документи чрез съпоставяне на дати в MongoDB