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.
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!
