مشخصات مقاله
آموزش جستجو نتایج مورد نظر ( Query ) در MongoDB Node.js
آموزش جستجو نتایج مورد نظر ( Query ) در Node.js MongoDB :
پس از جستجو و پیدا کردن رکوردها از یک مجوعه ( Collection ) در یک پایگاه داده MongoDB، می توانید نتایج خروجی را بر حسب اطلاعات مورد نیازتان ، فیلتر نمایید.
همانطور که در بخش های قبلی اشاره کردیم، پارامتر اول متد find() ، یک شی جستجو ( Query Object ) است که در آن می توانید شرایط مورد نظر خود را تعیین کرده و نتایج خروجی را بر حسب نیاز، فیلتر نمایید.
مثال : در کد مثال زیر توسط یک شی MongoClient به پایگاه داده "mydb" متصل شده ایم.
سپس با تعیین پارامتر جستجو در متغیر query ، از متد find خواسته شده تا اطلاعات کلیه فیلدهای رکوردی در جدول "customers" که مقدار فیلد address آن برابر "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" ذخیره کرده و با دستور زیر، آن را اجرا نمایید :
C:\Users\Your Name>node demo_mongodb_query.js
برنامه پس از اجرای موفقیت آمیز دستور فوق، اطلاعات رکورد هدف را نمایش می دهد:
[ { _id: 58fdbf5c0ef8a50b4cdd9a8e , name: 'Ben', address: 'Park Lane 38' } ]
آموزش فیلتر کردن نتایج جستجو با Regular Expression در MongoDB :
شما می توانید از فرمت های خاص جستجو یا Regular Experssion برای پیدا کردن دقیق نتایج مورد نظرتان در MongoDB ، استفاده نمایید.
Regular Expression فقط بر روی فایل و جستجو های متنی ( Strings ) ، قابل اجرا هستند.
در کد مثال عملی زیر، با استفاده از یک فرمت خاص ، می خواهیم فقط اطلاعات مشتریانی را نمایش دهیم که آدرس آنها ( فیلد address ) با حرف "s" شروع می شود.
برای این منظور از عبارت /^S/ به عنوان پارامتر دوم متد find ، استفاده کرده ایم :
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" ذخیره کرده و با دستور زیر، آن را اجرا نمایید :
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' } ]