MongoDB Compass

Uzun zamandır ilişkisel veritabanlarını (RDBMS) programladığım sistemlerde kullanıyorum. Bu sırada tabii ki başka türlü veritabanları da yaygınlaşmaya başladı. Şirketteki işlerim biraz azalır gibi olduğunda NoSQL tipi bir veritabanını öğreneyim dedim. Bilgisayarıma hemen MongoDB sunucusunu kurdum ve çeşitli kaynaklardan bu veritabanını nasıl kullanacağımı öğrenmeye başladım. İşlerimi Linux altında konsolda yapıyordum ve bu sırada MongoDB Compass diye bir programdan haberdar oldum. Onu da kurdum ve kullanmaya başladım. Verileri görme, bazı sorguları çok daha kolay bir şekilde yazma ve komutları otomatik tamamlama özellikleri öok hoşuma gitti ama her türlü sorguyu kullanmak mümkün değildi. Yani hala arada konsolu kullanmam gerekiyordu. Bu sırada programın alt tarafında _MONGOSH beta gibi bir yazı gördüm. Belki shell kısmı buradadır diye bastım ve gerçekten de konsol gibi bir şey açıldı ama yazdığım her komut hata veriyordu.

MongoError: No AuthProvider for DEFAULT defined.

Internette bu hata mesajını yazıp yaptığım aramalarda bir sonuca ulaşamadım ama bağlantı tanımlama penceresinde zaten bir miktar ipucu varmış.

Ben connection string kısmına sadece aşağıdaki komutu yazmıştım.

mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb

Bunu yazınca mongodb compass compressor tanımı için bir uyarı vermişti ama. Bunun üzerine komutu şöyle değiştirmiştim.

mongodb://127.0.0.1:27017/?compressors=zlib&gssapiServiceName=mongodb

Anlaşılan username ve password de tanımlamam gerekiyordu.

Önce bu sayfada anlatıldığı şekilde konsolu kullanarak bir kullanıcı admini ekledim.

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: passwordPrompt(), // or cleartext password
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

Bu komuttan sonra mongodb bu kullanıcı için şifreyi soruyor. Ardından kullanıcı tanımlanmış oluyor. Bundan sonra bağlantı komutunu şifre kısmına yukarıdaki komutla beraber tanımladığım şifreyi kullanarak yazdım.

mongodb://myUserAdmin:şifre@127.0.0.1:27017/?compressors=zlib&gssapiServiceName=mongodb

Bundan sonra programın altındaki _MONGOSH BETA kısmını da konsol olarak kullanabildim.