48 NamespaceExists: Namespace (collection) already exists
MongoDBNe demek?
Oluşturmaya çalıştığınız koleksiyon (namespace) zaten var. MongoDB, aynı ad ve seçeneklerle yeni bir koleksiyon oluşturmanıza gerek olmadan mevcut olduğunu bildirir.
Neden olur?
createCollection ile zaten var olan bir koleksiyonu (belki farklı seçeneklerle) yeniden oluşturmaya çalışmak; şema/kurulum betiklerinin birden çok kez çalıştırılması; ya da kapasiteli (capped) koleksiyon veya özel seçeneklerle var olan bir adı yeniden tanımlama denemesi.
Nasıl çözülür?
Genellikle güvenle yok sayılabilir; koleksiyon zaten mevcut demektir. Kurulum betiklerinizi idempotent yapın: oluşturmadan önce varlığı kontrol edin (db.getCollectionNames().includes('ad')). Seçenekleri değiştirmek istiyorsanız koleksiyonu düşürüp yeniden oluşturmanız gerekir (veriyi önce yedekleyin): db.koleksiyon.drop() sonra createCollection.
Aynı motorda diğer kayıtlar
- 31 RoleNotFoundRole not found
- 263 OperationNotSupportedInTransactionOperation not supported inside a multi-document transaction
- 20 IllegalOperationIllegal operation
- 11601 InterruptedOperation was interrupted
- 85 IndexOptionsConflictIndex already exists with different options / different name
- 67 CannotCreateIndexCannot create index
- 27 IndexNotFoundIndex not found