Node.js MongoDB Bul


MongoDB'de bir koleksiyondaki verileri bulmak için find ve findOne yöntemlerini kullanırız.

Tıpkı SELECT ifadesinin MySQL veritabanındaki bir tablodaki verileri bulmak için kullanılması gibi.

Birini Bul

MongoDB'deki bir koleksiyondan veri seçmek için findOne()yöntemi kullanabiliriz.

Yöntem findOne(), seçimdeki ilk oluşumu döndürür.

Yöntemin ilk parametresi findOne()bir sorgu nesnesidir. Bu örnekte, bir koleksiyondaki tüm belgeleri seçen (ancak yalnızca ilk belgeyi döndüren) boş bir sorgu nesnesi kullanıyoruz.

Örnek

Müşteri koleksiyonundaki ilk belgeyi bulun:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").findOne({}, function(err, result) {
    if (err) throw err;
    console.log(result.name);
    db.close();
  });
});

Yukarıdaki kodu "demo_mongodb_findone.js" adlı bir dosyaya kaydedin ve dosyayı çalıştırın:

"demo_mongodb_findone.js" dosyasını çalıştırın

C:\Users\Your Name>node demo_mongodb_findone.js

Hangisi size bu sonucu verecektir:

Company Inc.


Hepsini bul

MongoDB'deki bir tablodan veri seçmek için de find()yöntemi kullanabiliriz.

Yöntem find(), seçimdeki tüm oluşumları döndürür.

Yöntemin ilk parametresi find()bir sorgu nesnesidir. Bu örnekte, koleksiyondaki tüm belgeleri seçen boş bir sorgu nesnesi kullanıyoruz.

find() yöntemindeki hiçbir parametre size MySQL'deki SELECT * ile aynı sonucu vermez.

Örnek

Müşteri koleksiyonundaki tüm belgeleri bulun:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Yukarıdaki kodu "demo_mongodb_find.js" adlı bir dosyaya kaydedin ve dosyayı çalıştırın:

"demo_mongodb_find.js"yi çalıştırın

C:\Users\Your Name>node demo_mongodb_find.js

Hangisi size bu sonucu verecektir:

[
  { _id: 58fdbf5c0ef8a50b4cdd9a84 , name: 'John', address: 'Highway 71'},
  { _id: 58fdbf5c0ef8a50b4cdd9a85 , name: 'Peter', address: 'Lowstreet 4'},
  { _id: 58fdbf5c0ef8a50b4cdd9a86 , name: 'Amy', address: 'Apple st 652'},
  { _id: 58fdbf5c0ef8a50b4cdd9a87 , name: 'Hannah', address: 'Mountain 21'},
  { _id: 58fdbf5c0ef8a50b4cdd9a88 , name: 'Michael', address: 'Valley 345'},
  { _id: 58fdbf5c0ef8a50b4cdd9a89 , name: 'Sandy', address: 'Ocean blvd 2'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8a , name: 'Betty', address: 'Green Grass 1'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard', address: 'Sky st 331'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8c , name: 'Susan', address: 'One way 98'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8d , name: 'Vicky', address: 'Yellow Garden 2'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38'},
  { _id: 58fdbf5c0ef8a50b4cdd9a8f , name: 'William', address: 'Central st 954'},
  { _id: 58fdbf5c0ef8a50b4cdd9a90 , name: 'Chuck', address: 'Main Road 989'},
  { _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway 1633'}
]

Biraz bul

find()Yöntemin ikinci parametresi projection, sonuca hangi alanların dahil edileceğini açıklayan nesnedir.

Bu parametre isteğe bağlıdır ve atlanırsa tüm alanlar sonuca dahil edilir.

Örnek

Müşteri koleksiyonundaki tüm belgelerin "ad" ve "adres" alanlarını döndürün:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0, name: 1, address: 1 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Yukarıdaki kodu "demo_mongodb_find_fields.js" adlı bir dosyaya kaydedin ve dosyayı çalıştırın:

"demo_mongodb_find_fields.js" dosyasını çalıştırın

C:\Users\Your Name>node demo_mongodb_find_fields.js

Hangisi size bu sonucu verecektir:

[
  { name: 'John', address: 'Highway 71'},
  { name: 'Peter', address: 'Lowstreet 4'},
  { name: 'Amy', address: 'Apple st 652'},
  { name: 'Hannah', address: 'Mountain 21'},
  { name: 'Michael', address: 'Valley 345'},
  { name: 'Sandy', address: 'Ocean blvd 2'},
  { name: 'Betty', address: 'Green Grass 1'},
  { name: 'Richard', address: 'Sky st 331'},
  { name: 'Susan', address: 'One way 98'},
  { name: 'Vicky', address: 'Yellow Garden 2'},
  { name: 'Ben', address: 'Park Lane 38'},
  { name: 'William', address: 'Central st 954'},
  { name: 'Chuck', address: 'Main Road 989'},
  { name: 'Viola', address: 'Sideway 1633'}
]

Aynı nesnede hem 0 hem de 1 değerleri belirtmenize izin verilmez (alanlardan birinin _id alanı olması dışında). 0 değerine sahip bir alan belirtirseniz, diğer tüm alanlar 1 değerini alır ve bunun tersi de geçerlidir:

Örnek

Bu örnek, "adresi" sonuçtan hariç tutacaktır:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { address: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

_id alanını hariç tutmak için değerini 0 olarak ayarlamanız gerekir:

Örnek

Bu örnek yalnızca "ad" alanını döndürür:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0, name: 1 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Örnek

Bu örnek size ilk örnekle aynı sonucu verecektir; _id alanı dışındaki tüm alanları döndür:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { _id: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Örnek

Aynı nesnede hem 0 hem de 1 değerleri belirtirseniz (alanlardan birinin _id alanı olması dışında) bir hata alırsınız:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("mydb");
  dbo.collection("customers").find({}, { projection: { name: 1, address: 0 } }).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Sonuç Nesnesi

Yukarıdaki örneğin sonucundan da görebileceğiniz gibi, sonuç, her belgeyi bir nesne olarak içeren bir diziye dönüştürülebilir.

Örneğin üçüncü belgenin adresini döndürmek için, üçüncü dizi nesnesinin adres özelliğine başvurmanız yeterlidir:

Örnek

Üçüncü belgenin adresini döndürün:

console.log(result[2].address);

Bu sonucu üretecek olan:

Apple st 652