Temukan Node.js MongoDB
Di MongoDB kami menggunakan metode find dan findOne untuk menemukan data dalam koleksi.
Sama seperti pernyataan SELECT yang digunakan untuk mencari data dalam tabel di database MySQL.
Temukan Satu
Untuk memilih data dari koleksi di MongoDB, kita bisa menggunakan
findOne()
metode.
Metode findOne()
mengembalikan kemunculan pertama dalam seleksi.
Parameter pertama dari findOne()
metode ini adalah objek kueri. Dalam contoh ini kami menggunakan objek kueri kosong, yang memilih semua dokumen dalam koleksi (tetapi hanya mengembalikan dokumen pertama).
Contoh
Temukan dokumen pertama dalam koleksi pelanggan:
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();
});
});
Simpan kode di atas dalam file bernama "demo_mongodb_findone.js" dan jalankan file tersebut:
Jalankan "demo_mongodb_findone.js"
C:\Users\Your Name>node demo_mongodb_findone.js
Yang akan memberi Anda hasil ini:
Company Inc.
Temukan semua
Untuk memilih data dari tabel di MongoDB, kita juga bisa menggunakan
find()
metode.
Metode find()
mengembalikan semua kejadian dalam seleksi.
Parameter pertama dari find()
metode ini adalah objek kueri. Dalam contoh ini kami menggunakan objek kueri kosong, yang memilih semua dokumen dalam koleksi.
Tidak ada parameter dalam metode find() yang memberi Anda hasil yang sama seperti SELECT * di MySQL.
Contoh
Temukan semua dokumen dalam koleksi pelanggan:
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();
});
});
Simpan kode di atas dalam file bernama "demo_mongodb_find.js" dan jalankan file tersebut:
Jalankan "demo_mongodb_find.js"
C:\Users\Your Name>node demo_mongodb_find.js
Yang akan memberi Anda hasil ini:
[
{ _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'}
]
Temukan beberapa
Parameter kedua dari find()
metode ini adalah projection
objek yang menjelaskan bidang mana yang akan disertakan dalam hasil.
Parameter ini opsional, dan jika dihilangkan, semua bidang akan disertakan dalam hasil.
Contoh
Kembalikan bidang "nama" dan "alamat" semua dokumen dalam koleksi pelanggan:
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();
});
});
Simpan kode di atas dalam file bernama "demo_mongodb_find_fields.js" dan jalankan file tersebut:
Jalankan "demo_mongodb_find_fields.js"
C:\Users\Your Name>node demo_mongodb_find_fields.js
Yang akan memberi Anda hasil ini:
[
{ 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'}
]
Anda tidak diperbolehkan untuk menentukan nilai 0 dan 1 dalam objek yang sama (kecuali jika salah satu bidang adalah bidang _id). Jika Anda menentukan bidang dengan nilai 0, semua bidang lainnya mendapatkan nilai 1, dan sebaliknya:
Contoh
Contoh ini akan mengecualikan "alamat" dari hasil:
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();
});
});
Untuk mengecualikan bidang _id, Anda harus menyetel nilainya ke 0:
Contoh
Contoh ini hanya akan mengembalikan bidang "nama":
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();
});
});
Contoh
Contoh ini akan memberi Anda hasil yang sama seperti contoh pertama; kembalikan semua bidang kecuali bidang _id:
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();
});
});
Contoh
Anda mendapatkan kesalahan jika Anda menentukan nilai 0 dan 1 di objek yang sama (kecuali jika salah satu bidangnya adalah bidang _id):
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();
});
});
Hasil Obyek
Seperti yang Anda lihat dari hasil contoh di atas, hasilnya dapat diubah menjadi array yang berisi setiap dokumen sebagai objek.
Untuk mengembalikan misalnya alamat dokumen ketiga, cukup rujuk ke properti alamat objek array ketiga:
Contoh
Kembalikan alamat dokumen ketiga:
console.log(result[2].address);
Yang akan menghasilkan hasil ini:
Apple st 652