MongoDb ve Sql Sorguları

Merhaba arkadaşlar,

Yazılım dünyasında günümüzde NoSql database kavramı çok kullanılmakta ve bunlardan en bilinenlerinden biride Mongo DB olarak gözükmektedir. Kısaca size MongoDB hakkında genel bir bilgi vererek, Sql sorgularının Mongo Db içerisinde ki karşılıklarını vermek istiyorum.

MongoDb, open source olarak geliştirilmiş, yatay olarak ölçeklenebilir, hızlı bir NoSql veri tabanıdır. Verileri docuemnt(belge) olarak collectionlar içinde saklar. İndexleme oluşturulabilir ve veriler Json olarak tutulduğu için hızlı bir şekilde sorgulama yapılabilir. Büyük veri yapılarında hızlı sorgulamalar için kullanımı idealdir.

MongoDb de sorgulama şekli, klasik olarak kullanılan T-Sql sorgularından biraz farklıdır. Bu yüzden Sql sorguları ile MongoDb de bu sorguların karşılıklarını bir araya getirmeye çalıştım.

 

SQL

MONGO

Example

SELECT find() db.Ornek.find()
Aggregate,
count ve sum gibi fonksiyonlarda
kullanılabilir.
INSERT insertOne() db. Ornek.
insertOne({
user_id: “ea0001”,
name: “Enes” ,
age:40})
UPDATE
UPDATE Ornek  SET name = “METE”WHERE age > 25
UpdateMany()

 

db.Ornek.
updateMany({
age: { $gt: 25 } },
{ $set: {
name: “METE” } })
ALTER
ALTER TABLE Ornek
ADD join_date DATETIME,ALTER TABLE people
DROP COLUMN join_date
updateMany()

 

db.Ornek.
updateMany({ },
{ $set: {
join_date:
new Date()
} })

db.people.
updateMany({ },
{$unset: {
“join_date”: “” } })

CREATE insertOne() / createCollection() insertOne,
insertMany
kullanıldığında
colection oluşturulur.
Yada
db.createCollection
(“TEST”) gibi direk oluşturabilirsiniz.
WHERE
SELECT * FROM people
WHERE age > 25
find()
$ne : !=
$gt : > , $gte : >=
$lt :< , $lte :<=
db.Ornek.
find({ age:
{ $gt: 25 } })
LIKE
like “%bc%”
like “bc%”
like ‘%bc’
Rexeg sorgularını aşağıdaki tag ile beraber kullanabilirsiniz.
$regex tagı
db.Ornek.
find({name:/bc/})
db.Ornek.find(
{name:/^bc/})
db.Ornek.find(
{name:/bc$/})

DELETE
deleteOne()/deleteMany()orremove() db.Ornek.
deleteOne(
{id: 11})
ORDER BY sort()
+1 asc, -1 desc
db.Ornek.find().
sort(
{join_date:-1})
GROUP BY group() / aggregate($group) db.Ornek.
aggregate
([{
$group: {
_id: “$name”}}  ])
JOIN Left join için $lookup db.[collection name].
aggregation
([{$lookup:{
from: “[foreign collection]”,
localField : “[local field]”,
foreignField : “[foreign
collection field name]”,
as : “[key name
to appear in result]”}}])

Evet arkadaşlar, aklıma gelen genel sql sorgu keywordlerini bu şekilde eşleştirdim. Umarım işinize yarar.

https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/
https://www.tutorialspoint.com/mongodb/mongodb_query_document.htm
https://docs.mongodb.com/manual/reference/sql-comparison/
https://docs.mongodb.com/master/reference/operator/aggregation/lookup/#pipe._S_lookup

Hepinize iyi hafta sonları kalın sağlıcakla 😀

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir