Kueri MongoDB Node.js


Saring Hasilnya

Saat menemukan dokumen dalam koleksi, Anda bisa memfilter hasilnya dengan menggunakan objek kueri.

Argumen pertama dari find()metode ini adalah objek kueri, dan digunakan untuk membatasi pencarian.

Contoh

Temukan dokumen dengan alamat "Park Lane 38":

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");
  var query = { address: "Park Lane 38" };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Simpan kode di atas dalam file bernama "demo_mongodb_query.js" dan jalankan file tersebut:

Jalankan "demo_mongodb_query.js"

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

Yang akan memberi Anda hasil ini:

[
  { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38' }
]


Filter Dengan Ekspresi Reguler

Anda dapat menulis ekspresi reguler untuk menemukan dengan tepat apa yang Anda cari.

Ekspresi reguler hanya dapat digunakan untuk query string .

Untuk menemukan hanya dokumen di mana bidang "alamat" dimulai dengan huruf "S", gunakan ekspresi reguler /^S/:

Contoh

Temukan dokumen yang alamatnya dimulai dengan huruf "S":

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");
  var query = { address: /^S/ };
  dbo.collection("customers").find(query).toArray(function(err, result) {
    if (err) throw err;
    console.log(result);
    db.close();
  });
});

Simpan kode di atas dalam file bernama "demo_mongodb_query_s.js" dan jalankan file tersebut:

Jalankan "demo_mongodb_query_s.js"

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

Yang akan memberi Anda hasil ini:

[
  { _id: 58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard', address: 'Sky st 331' },
  { _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway 1633' }
]