Node.js MongoDB Find Records


Node.JS में MongDB database से records को select करने के लिए findOne() और find() method का use किया जाता है। इस topic में आप सीखेंगे कि इन methods का use करके किस तरह से records को find / select किया जाता है।

Node.JS MongoDB findOne

findOne({}, callback) method का use वहां किया जाता है , जब हमें सिंर्फ single record find करना हो। by default इस method में empty object {} pass किया जाता है , लेकिन अगर आप किसी condition के according record find करना चाहते हैं तो आप object pass कर सकते हैं।

findOne Exmaple
Copy Fullscreen Close Fullscreen
const { MongoClient } = require('mongodb');
const uri = "mongodb+srv://dbUser:dbPassword@cluster0.2n7fz.mongodb.net/node_mongodb?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true ,  connectTimeoutMS: 30000 ,  keepAlive: 1});
client.connect(error => {
  if(error){
    console.log("MongoDB Connect Error", error.name, error.message);
  }else{
    const database = client.db("node_mongodb");
    const users = database.collection("users");
    users.findOne({}, function(error, result){
      if(error){
        console.log("MongoDB Find Error", error.name, error.message);
      }else{
        console.log(result);
      }
    })
  }
});
Output

Output में आपको record मिलने पर single document (row) object मिलेगा otherwise empty object मिलेगा , जैसा कि नीचे example में दिखाया गया है।

C:\Users\HP\Desktop\workspace\nodejs>node app.js
{
  _id: new ObjectId("61ff49456fb19c964c2f7529"),
  name: 'Rahul Kumar',
  age: 24,
  address: 'U.P. India',
  website: 'learnhindituts.com'
}

Node.JS MongoDB Where clause

हालाँकि अगर आप किसी condition के according record find करना चाहते हैं तो आप में findOne({columne:value}, callback) method where object pass कर सकते हैं।
see example :

Copy Fullscreen Close Fullscreen
let whereObj = {
  age : 26
}
users.findOne(whereObj, function(error, result){
  if(error){
    console.log("MongoDB Find Error", error.name, error.message);
  }else{
    console.log(result);
  }
})
C:\Users\HP\Desktop\workspace\nodejs>node app.js
{
  _id: new ObjectId("61ff4d6c3c7e813b57e3214b"),
  name: 'Raju',
  age: 26,
  address: 'Punjab',
  website: null
}

node.JS MongoDB find All

find({}, callback) method का use करके आप किसी collection में available सभी records को find / select कर सकते हैं । इस method में भी अगर आप किसी condition के according record find करना चाहते हैं तो आप where object pass कर सकते हैं।

find All Example
Copy Fullscreen Close FullscreenRun
const { MongoClient } = require('mongodb');
const uri = "mongodb+srv://dbUser:dbPassword@cluster0.2n7fz.mongodb.net/node_mongodb?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true ,  connectTimeoutMS: 30000 ,  keepAlive: 1});
client.connect(error => {
  if(error){
    console.log("MongoDB Connect Error", error.name, error.message);
  }else{
    const database = client.db("node_mongodb");
    const users = database.collection("users");

    // use toArray() method to find all documents
    users.find({}).toArray(function(error, result){
      if(error){
        console.log("MongoDB Find Error", error.name, error.message);
      }else{
        console.log(result);
      }
    })
  }
});
Output

ध्यान रहे collection से सभी documents(rows) find करने के लिए आपको find().toArray() लिखना है , जिससे आपको documents(rows) का array मिल सके , जैसा कि नीचे output में देख सकते हैं।

C:\Users\HP\Desktop\workspace\nodejs>node app.js
[
  {
    _id: new ObjectId("61ff49456fb19c964c2f7529"),
    name: 'Rahul Kumar',
    age: 24,
    address: 'U.P. India',
    website: 'learnhindituts.com'
  },
  {
    _id: new ObjectId("61ff4d6c3c7e813b57e3214a"),
    name: 'Mohit Kumar',
    age: 24,
    address: 'U.P. India',
    website: null
  },
  {
    _id: new ObjectId("61ff4d6c3c7e813b57e3214b"),
    name: 'Raju',
    age: 26,
    address: 'Punjab',
    website: null
  }
]

Node.JS MongoDB select / find particular fields

documents में particular fields select करने के लिए , आपको find() या findOne() method में where Object के अलावा दूसरा object pass करना पड़ेगा जिसमे projection key के साथ वो fiel define करने हैं जिन्हे आपको select करना है।
Example :

Copy Fullscreen Close Fullscreen
users.find({}, {projection : {name : 1,age : 1}}).toArray(function(error, result){
  if(error){
    console.log("MongoDB Find Error", error.name, error.message);
  }else{
    console.log(result);
  }
})
output

MongoDB में _id field select न करने पर भी मिलेगा , यह बाकी fields के साथ by default append हो जाता है , जैसा कि नीचे example में देख सकते हैं। अगर आपको _id नहीं select करना है तो projection में {_id :1},/span> pass करना पड़ेगा।

C:\Users\HP\Desktop\workspace\nodejs>node app.js
[
  {
    _id: new ObjectId("61ff49456fb19c964c2f7529"),
    name: 'Rahul Kumar',
    age: 24
  },
  {
    _id: new ObjectId("61ff4d6c3c7e813b57e3214a"),
    name: 'Mohit Kumar',
    age: 24
  },
  {
    _id: new ObjectId("61ff4d6c3c7e813b57e3214b"),
    name: 'Raju',
    age: 26
  }
]
Node.JS MongoDB select / find all fields except some

अब अगर आपको documents(rows) में से कुछ fields को छोड़कर सभी field select करने हैं तो projection में आपको उन fields को 0 assign {projection : {field : 0} } करना।
Example :

Copy Fullscreen Close Fullscreen
users.find({}, {projection : {_id : 0, website:0}}).toArray(function(error, result){
  if(error){
    console.log("MongoDB Find Error", error.name, error.message);
  }else{
    console.log(result);
  }
})
C:\Users\HP\Desktop\workspace\nodejs>node app.js
[
  { name: 'Rahul Kumar', age: 24, address: 'U.P. India' },
  { name: 'Mohit Kumar', age: 24, address: 'U.P. India' },
  { name: 'Raju', age: 26, address: 'Punjab' }
]

तो कुछ इस तरह से Node.JS में MongoDB Database में Collection से Documents(Rows) को find / select करते हैं , I Hope, आपको अच्छे से समझ आया होगा।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook