Node.js แบบสอบถามMongoDB
กรองผลลัพธ์
เมื่อค้นหาเอกสารในคอลเลกชั่น คุณสามารถกรองผลลัพธ์โดยใช้ออบเจ็กต์คิวรี
อาร์กิวเมนต์แรกของfind()
เมธอดเป็นออบเจกต์แบบสอบถาม และใช้เพื่อจำกัดการค้นหา
ตัวอย่าง
ค้นหาเอกสารที่มีที่อยู่ "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();
});
});
บันทึกรหัสด้านบนในไฟล์ชื่อ "demo_mongodb_query.js" และเรียกใช้ไฟล์:
เรียกใช้ "demo_mongodb_query.js"
C:\Users\Your Name>node demo_mongodb_query.js
ซึ่งจะให้ผลลัพธ์นี้แก่คุณ:
[
{ _id: 58fdbf5c0ef8a50b4cdd9a8e
, name: 'Ben', address: 'Park Lane 38' }
]
กรองด้วยนิพจน์ทั่วไป
คุณสามารถเขียนนิพจน์ทั่วไปเพื่อค้นหาสิ่งที่คุณกำลังค้นหา
นิพจน์ทั่วไปสามารถใช้เพื่อค้นหาสตริงเท่านั้น
หากต้องการค้นหาเฉพาะเอกสารที่ช่อง "ที่อยู่" ขึ้นต้นด้วยตัวอักษร "S" ให้ใช้นิพจน์ทั่วไป/^S/
:
ตัวอย่าง
ค้นหาเอกสารที่ที่อยู่ขึ้นต้นด้วยตัวอักษร "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();
});
});
บันทึกรหัสด้านบนในไฟล์ชื่อ "demo_mongodb_query_s.js" และเรียกใช้ไฟล์:
เรียกใช้ "demo_mongodb_query_s.js"
C:\Users\Your Name>node demo_mongodb_query_s.js
ซึ่งจะให้ผลลัพธ์นี้แก่คุณ:
[
{ _id:
58fdbf5c0ef8a50b4cdd9a8b , name: 'Richard',
address: 'Sky st 331' },
{ _id: 58fdbf5c0ef8a50b4cdd9a91 , name: 'Viola', address: 'Sideway
1633' }
]