MongoDB find


MongoDB da biz to‘plamdagi ma’lumotlarni topish uchun find va findOne usullaridan foydalanamiz.

Xuddi SELECT iborasi a ichida ma’lumotlarni topish uchun ishlatilgani kabi MySQL ma’lumotlar bazasidagi jadval.

ULASHISH

Birini toping

MongoDB to‘plamidan ma’lumotlarni tanlash uchun biz foydalanishimiz mumkin findOne() usuli.

findOne() usuli birinchisini qaytaradi tanlashda yuzaga kelishi.

findOne() metodining birinchi parametri so‘rov obyektidir. Bu misolda biz bo‘sh so‘rov obyektidan foydalanamiz, u kolleksiyadagi barcha hujjatlarni tanlaydi (lekin faqat birinchi hujjatni qaytaradi).

Misol

Mijozlar to‘plamidagi birinchi hujjatni toping:

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

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

Yuqoridagi kodni "demo_mongodb_findone.js" nomli faylga saqlang va faylni ishga tushiring:

"demo_mongodb_findone.js" ni ishga tushiring

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

Bu sizga bu natijani beradi:

Company Inc.


Hammasini top

MongoDB-dagi jadvaldan ma’lumotlarni tanlash uchun biz ham foydalanishimiz mumkin find() usuli.

find() usuli hammasini qaytaradi tanlovdagi hodisalar.

find() usulining birinchi parametri so‘rov obyekti hisoblanadi. Ushbu misolda biz tanlagan bo‘sh so‘rov obyektidan foydalanamiz to‘plamdagi barcha hujjatlar.

find() metodida parametrlar bo‘lmasa, MySQL’dagi SELECT * bilan bir xil natija olinadi.

Misol

Mijoz to‘plamidagi barcha hujjatlarni toping:

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

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

Yuqoridagi kodni "demo_mongodb_find.js" nomli faylga saqlang va faylni ishga tushiring:

"demo_mongodb_find.js" ni ishga tushiring

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

Bu sizga bu natijani beradi:

[
  { _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'}
]

Ba’zilarini toping

find() usulining ikkinchi parametri natijaga qaysi maydonlarni kiritish kerakligini tavsiflovchi projection obyektidir.

Ushbu parametr ixtiyoriy va agar o‘tkazib yuborilsa, barcha maydonlar kiritiladi natija.

Misol

Mijozlar to‘plamidagi barcha hujjatlarning "nomi" va "manzil" maydonlarini qaytaring:

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

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  let 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();
  });
});
Misolni ishga tushirish »

Yuqoridagi kodni "demo_mongodb_find_fields.js" deb nomlangan faylga saqlang va faylni ishga tushiring:

"demo_mongodb_find_fields.js" ni ishga tushiring

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

Bu sizga bu natijani beradi:

[
  { 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'}
]

Xuddi shu obyektda 0 va 1 qiymatlarini ko‘rsatishga ruxsat berilmagan (.dan tashqari). agar maydonlardan biri _id maydoni bo‘lsa). Agar siz 0 qiymatiga ega maydonni belgilasangiz, boshqa barcha maydonlar 1 qiymatini oladi, va aksincha:

Misol

Ushbu misol "manzil" ni natijadan chiqarib tashlaydi:

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

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

_id maydonini chiqarib tashlash uchun uning qiymatini 0 ga o‘rnatishingiz kerak:

Misol

Ushbu misol faqat "nom" maydonini qaytaradi:

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

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  let 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();
  });
});
Misolni ishga tushirish »

Misol

Bu misol sizga birinchi misol bilan bir xil natija beradi; hammasini qaytaring _id maydonidan tashqari maydonlar:

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

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

Misol

Xuddi shu obyektda 0 va 1 qiymatlarni belgilasangiz, xatoga yo‘l qo‘yasiz (agar maydonlardan biri _id maydoni bo‘lsa bundan mustasno):

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

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  let 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();
  });
});
Misolni ishga tushirish »

Natija obyekti

Yuqoridagi misol natijasidan ko‘rinib turibdiki, natija har birini o‘z ichiga olgan massivga aylantirilishi mumkin obyekt sifatida hujjat.

Qaytish uchun, masalan. uchinchi hujjatning manzili, faqat massivdagi uchinchi obyektning address xususiyatiga murojaat qiling:

Misol

Uchinchi hujjatning manzilini qaytaring:

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

Qaysi natijani beradi:

Apple st 652


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!