15 Mayıs 2016 Pazar

Mongo Db commands

Mongo db ye bağlanmak için

/installation_path / bin /

./mongo

açılan konsol ekranında aşağıdaki işlemler ile db management yapılabilir.

Databaseleri listele:

show dbs 

 Kullanılacak DB ye geç

use databaseIsmi 
Tabloları listele

show collections 
Tabloyu temizle 

db.tabloIsmi.remove({}) 
curly {} parantez e dikkat çekmek gerekli bu kullanım ile herhangi bir kısıt olmadan tüm datayı sil anlamı mevcuttur 

Silinecek data nasıl filtrelenir  userTable isimli collectiondan name kolonu-RDMS :) -  Abdurrahman değerini taşıyan kayıtlar silinsin

db.userTable.remove({'name':'Abdurrahman'}) 

java.lang.IllegalArgumentException: Removing a detached instance

JPA ile remove işlemi denediğinizde title da geçen java.lang.IllegalArgumentException: Removing a detached instance hatasını aldığınızda temel olarak sorunun kullandığınız sessiona ait olmayan bir entity i silmeye çalışmanız olduğunu düşünebilirsiniz.

Sorunun tespiti için kullandığınız transaction-type önemlidir JTA kullanmıyor transaction ı siz yönetiyor iseniz bu soruna bulaşmayı siz seçmişsiniz demektir.Kullandığınız teknoloji sebepli Resource-Local ile çalışıyorsanız entitymanager ı ne zaman kapattığınız önemlidir.

Genelde hata sayfaya gelen listedeki bir elemanın silinme isteği sebebi ile alınır.Datayı sayfaya getirdikten sonra entitymanager ı kapatmış iseniz silme işleminde yeni bir entitymanager oluşturmanız gerekecek bu entitymanager ile EntityManager#remove() denediğinizde hata alacaksınız

Hata mesajında belirtildiği üzere bu entitymanager  yeni oluşturuldu ve içinde attach edilmiş sizin belirttiğiniz gibi bir entity bulunmuyor 

Yapılması gereken EntityManager#contains()  metodu ile entitymanager için bu entity nin varlığının teyidi mevcut ise  EntityManager#remove() aksi durumda
 EntityManager#merge(). denenmesidir Aşağıda kodun shorten hali bulunmaktadır.

em.remove(em.contains(entity) ? entity : em.merge(entity));



1 Mayıs 2016 Pazar

Amazon - Linux mongo db kurulumu

/etc/yum.repos.d/mongodb-org-3.2.repo 

lokasyonunda mongodb-org-3.2.repo  dosyası oluşturulur mkdir command

daha sonra  bu dosyanın içine aşağıdaki paket bilgisi girilir  az önce oluşturulan .repo dosyası sadece bu metini  içermelidir 


[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
:w yada :wq commandları ile dosya kayıdı tamamlandıkdan sonra aşağıdaki command ile paketler indirilir 


sudo yum install -y mongodb-org
default olarak data dosyaları /var/lib/mongo
lokasyonunda log dosyaları ise  
/var/log/mongodb
altında tutulur 

Mongo DB yi çalıştırmak için aşağıdaki commandı kullanın


sudo service mongod start
Aşağıdaki command ile mongo db nin instance resetleri sonrası otomatik  ayağa kalkmasını sağlayın


sudo chkconfig mongod on


Aşağıdaki command ile /var/log/mongodb altında mongodb nin çalıştığını kontrol edin 


sudo tail  -f  mongod.log 


Mongodb yi durdurma 


sudo service mongod stop
Mongodb yi Tekrar başlatma 
sudo service mongod restart
Mongodb yi sistemden silmek için 

İlk adım 

mongodb yi durdur 

İkinci adım 

Kurulu tüm mongodb paketlerini sil 
sudo yum erase $(rpm -qa | grep mongodb-org)
Tüm mongodb  data ve log directorylerini temizle 


sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo
Mongodb konsoluna baplanarak belli komutları çalıştırmak iserseniz 
/usr/bin altında mongo commandını execute etmeniz yeterli olacaktır