Node.js
मानगो पुस्तकालय
खोज…
Mongoose का उपयोग करके MongoDB से कनेक्ट करें
सबसे पहले, Mongoose को इसके साथ स्थापित करें:
npm install mongoose
फिर, इसे निर्भरता के रूप में server.js
में जोड़ें:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
इसके बाद, डेटाबेस स्कीमा और संग्रह का नाम बनाएँ:
var schemaName = new Schema({
request: String,
time: Number
}, {
collection: 'collectionName'
});
एक मॉडल बनाएं और डेटाबेस से जुड़ें:
var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');
इसके बाद, MongoDB और चलाने शुरू server.js
का उपयोग कर node server.js
यदि हम सफलतापूर्वक डेटाबेस से कनेक्ट किया है, हम घटनाओं का उपयोग कर सकते जांच करने के लिए open
, error
से mongoose.connection
वस्तु।
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
// we're connected!
});
Mongoose और Express.js रूट का उपयोग करके डेटा को MongoDB में सहेजें
सेट अप
सबसे पहले, आवश्यक पैकेजों को इनस्टॉल करें:
npm install express cors mongoose
कोड
फिर, अपने server.js
फ़ाइल पर निर्भरताएँ जोड़ें, डेटाबेस स्कीमा और संग्रह का नाम बनाएँ, एक Express.js सर्वर बनाएँ, और MongoDB से कनेक्ट करें:
var express = require('express');
var cors = require('cors'); // We will use CORS to enable cross origin domain requests.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var app = express();
var schemaName = new Schema({
request: String,
time: Number
}, {
collection: 'collectionName'
});
var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');
var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log('Node.js listening on port ' + port);
});
अब Express.js मार्गों को जोड़ें, जिनका उपयोग हम डेटा लिखने के लिए करेंगे:
app.get('/save/:query', cors(), function(req, res) {
var query = req.params.query;
var savedata = new Model({
'request': query,
'time': Math.floor(Date.now() / 1000) // Time of save the data in unix timestamp format
}).save(function(err, result) {
if (err) throw err;
if(result) {
res.json(result)
}
})
})
यहां query
चर आने वाले HTTP अनुरोध से <query>
पैरामीटर होगा, जिसे MongoDB पर सहेजा जाएगा:
var savedata = new Model({
'request': query,
//...
यदि MongoDB पर लिखने की कोशिश करते समय कोई त्रुटि होती है, तो आपको कंसोल पर एक त्रुटि संदेश प्राप्त होगा। यदि सभी सफल है, तो आप पृष्ठ पर जेएसएन प्रारूप में सहेजे गए डेटा देखेंगे।
//...
}).save(function(err, result) {
if (err) throw err;
if(result) {
res.json(result)
}
})
//...
अब, आपको MongoDB शुरू करने और node server.js
का उपयोग करके अपने server.js
फ़ाइल को चलाने की node server.js
।
प्रयोग
डेटा को बचाने के लिए इसका उपयोग करने के लिए, अपने ब्राउज़र में निम्न URL पर जाएं:
http://localhost:8080/save/<query>
जहाँ <query>
नया अनुरोध है जिसे आप सहेजना चाहते हैं।
उदाहरण:
http://localhost:8080/save/JavaScript%20is%20Awesome
JSON प्रारूप में आउटपुट:
{
__v: 0,
request: "JavaScript is Awesome",
time: 1469411348,
_id: "57957014b93bc8640f2c78c4"
}
Mongoose और Express.js रूट का उपयोग करके MongoDB में डेटा ढूंढें
सेट अप
सबसे पहले, आवश्यक पैकेजों को इनस्टॉल करें:
npm install express cors mongoose
कोड
फिर, server.js
निर्भरताएं जोड़ें, डेटाबेस स्कीमा और संग्रह का नाम बनाएं, एक Express.js सर्वर बनाएं, और MongoDB से कनेक्ट करें:
var express = require('express');
var cors = require('cors'); // We will use CORS to enable cross origin domain requests.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var app = express();
var schemaName = new Schema({
request: String,
time: Number
}, {
collection: 'collectionName'
});
var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');
var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log('Node.js listening on port ' + port);
});
अब Express.js मार्गों को जोड़ें, जिनका उपयोग हम डेटा को क्वेरी करने के लिए करेंगे:
app.get('/find/:query', cors(), function(req, res) {
var query = req.params.query;
Model.find({
'request': query
}, function(err, result) {
if (err) throw err;
if (result) {
res.json(result)
} else {
res.send(JSON.stringify({
error : 'Error'
}))
}
})
})
मान लें कि निम्नलिखित दस्तावेज मॉडल में संग्रह में हैं:
{
"_id" : ObjectId("578abe97522ad414b8eeb55a"),
"request" : "JavaScript is Awesome",
"time" : 1468710551
}
{
"_id" : ObjectId("578abe9b522ad414b8eeb55b"),
"request" : "JavaScript is Awesome",
"time" : 1468710555
}
{
"_id" : ObjectId("578abea0522ad414b8eeb55c"),
"request" : "JavaScript is Awesome",
"time" : 1468710560
}
और लक्ष्य "request"
कुंजी के तहत "JavaScript is Awesome"
वाले सभी दस्तावेजों को खोजने और प्रदर्शित "JavaScript is Awesome"
।
इस के लिए, MongoDB शुरू करने और चलाने के server.js
साथ node server.js
:
प्रयोग
डेटा खोजने के लिए इसका उपयोग करने के लिए, ब्राउज़र में निम्न URL पर जाएं:
http://localhost:8080/find/<query>
जहां <query>
खोज क्वेरी है।
उदाहरण:
http://localhost:8080/find/JavaScript%20is%20Awesome
आउटपुट:
[{
_id: "578abe97522ad414b8eeb55a",
request: "JavaScript is Awesome",
time: 1468710551,
__v: 0
},
{
_id: "578abe9b522ad414b8eeb55b",
request: "JavaScript is Awesome",
time: 1468710555,
__v: 0
},
{
_id: "578abea0522ad414b8eeb55c",
request: "JavaScript is Awesome",
time: 1468710560,
__v: 0
}]
Mongoose, Express.js रूट और $ टेक्स्ट ऑपरेटर का उपयोग करके MongoDB में डेटा ढूंढें
सेट अप
सबसे पहले, आवश्यक पैकेजों को इनस्टॉल करें:
npm install express cors mongoose
कोड
फिर, server.js
निर्भरताएं जोड़ें, डेटाबेस स्कीमा और संग्रह का नाम बनाएं, एक Express.js सर्वर बनाएं, और MongoDB से कनेक्ट करें:
var express = require('express');
var cors = require('cors'); // We will use CORS to enable cross origin domain requests.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var app = express();
var schemaName = new Schema({
request: String,
time: Number
}, {
collection: 'collectionName'
});
var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');
var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log('Node.js listening on port ' + port);
});
अब Express.js मार्गों को जोड़ें, जिनका उपयोग हम डेटा को क्वेरी करने के लिए करेंगे:
app.get('/find/:query', cors(), function(req, res) {
var query = req.params.query;
Model.find({
'request': query
}, function(err, result) {
if (err) throw err;
if (result) {
res.json(result)
} else {
res.send(JSON.stringify({
error : 'Error'
}))
}
})
})
मान लें कि निम्नलिखित दस्तावेज मॉडल में संग्रह में हैं:
{
"_id" : ObjectId("578abe97522ad414b8eeb55a"),
"request" : "JavaScript is Awesome",
"time" : 1468710551
}
{
"_id" : ObjectId("578abe9b522ad414b8eeb55b"),
"request" : "JavaScript is Awesome",
"time" : 1468710555
}
{
"_id" : ObjectId("578abea0522ad414b8eeb55c"),
"request" : "JavaScript is Awesome",
"time" : 1468710560
}
और यह लक्ष्य "request"
कुंजी के तहत केवल "JavaScript"
शब्द वाले सभी दस्तावेजों को ढूंढना और प्रदर्शित "JavaScript"
।
ऐसा करने के लिए, पहले संग्रह में "request"
लिए एक पाठ सूचकांक बनाएं। इसके लिए, निम्न कोड को server.js
:
schemaName.index({ request: 'text' });
और बदलें:
Model.find({
'request': query
}, function(err, result) {
साथ में:
Model.find({
$text: {
$search: query
}
}, function(err, result) {
यहां, हम संग्रह collectionName
में सभी दस्तावेजों को खोजने के लिए $text
और $search
MongoDB ऑपरेटरों का उपयोग कर रहे हैं। इसमें निर्दिष्ट खोज क्वेरी से कम से कम एक शब्द होता है।
प्रयोग
डेटा खोजने के लिए इसका उपयोग करने के लिए, ब्राउज़र में निम्न URL पर जाएं:
http://localhost:8080/find/<query>
जहां <query>
खोज क्वेरी है।
उदाहरण:
http://localhost:8080/find/JavaScript
आउटपुट:
[{
_id: "578abe97522ad414b8eeb55a",
request: "JavaScript is Awesome",
time: 1468710551,
__v: 0
},
{
_id: "578abe9b522ad414b8eeb55b",
request: "JavaScript is Awesome",
time: 1468710555,
__v: 0
},
{
_id: "578abea0522ad414b8eeb55c",
request: "JavaScript is Awesome",
time: 1468710560,
__v: 0
}]
मॉडल में अनुक्रमित।
MongoDB सेकंडरी इंडेक्स का समर्थन करता है। Mongoose में, हम इन स्कीम्स को हमारे स्कीमा के भीतर परिभाषित करते हैं। जब हमें कंपाउंड इंडेक्स बनाने की आवश्यकता होती है तो स्कीमा स्तर पर इंडेक्स को परिभाषित करना आवश्यक होता है।
मानगो कनेक्शन
var strConnection = 'mongodb://localhost:27017/dbName';
var db = mongoose.createConnection(strConnection)
एक बुनियादी स्कीमा बनाना
var Schema = require('mongoose').Schema;
var usersSchema = new Schema({
username: {
type: String,
required: true,
unique: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
created: {
type: Date,
default: Date.now
}
});
var usersModel = db.model('users', usersSchema);
module.exports = usersModel;
डिफ़ॉल्ट रूप से, मोंगोज़ हमारे मॉडल में दो नए फ़ील्ड जोड़ता है, तब भी जब वे मॉडल में परिभाषित नहीं होते हैं। वे क्षेत्र हैं:
_ id
Mongoose आपके प्रत्येक स्कीमा को डिफ़ॉल्ट रूप से _id फ़ील्ड असाइन करता है यदि कोई स्कीमा कंस्ट्रक्टर में पारित नहीं हुआ है। असाइन किया गया प्रकार MongoDB के डिफ़ॉल्ट व्यवहार के साथ मेल खाने के लिए एक ObjectId है। यदि आप अपने स्कीमा में एक जोड़ी नहीं चाहते हैं, तो आप इस विकल्प का उपयोग करके इसे निष्क्रिय कर सकते हैं।
var usersSchema = new Schema({
username: {
type: String,
required: true,
unique: true
}, {
_id: false
});
__v या versionKey
VersionKey प्रत्येक दस्तावेज पर एक संपत्ति सेट है जब पहली बार Mongoose द्वारा बनाया गया था। इस कुंजी मान में दस्तावेज़ का आंतरिक संशोधन शामिल है। इस दस्तावेज़ की संपत्ति का नाम विन्यास योग्य है।
आप मॉडल कॉन्फ़िगरेशन में इस फ़ील्ड को आसानी से अक्षम कर सकते हैं:
var usersSchema = new Schema({
username: {
type: String,
required: true,
unique: true
}, {
versionKey: false
});
यौगिक सूचकांक
हम एक और इंडेक्स बना सकते हैं इसके अलावा उन Mongoose बनाता है।
usersSchema.index({username: 1 });
usersSchema.index({email: 1 });
इन मामलों में हमारे मॉडल में दो और सूचकांक हैं, एक फ़ील्ड उपयोगकर्ता नाम के लिए और दूसरा ईमेल फ़ील्ड के लिए। लेकिन हम कंपाउंड इंडेक्स बना सकते हैं।
usersSchema.index({username: 1, email: 1 });
सूचकांक प्रदर्शन प्रभाव
डिफ़ॉल्ट रूप से, mongoose हमेशा प्रत्येक इंडेक्स के लिए ensIndex को क्रमिक रूप से कॉल करता है और मॉडल पर एक 'इंडेक्स' ईवेंट का उत्सर्जन करता है जब सभी EnsIndex कॉल सफल हो जाते हैं या जब कोई त्रुटि होती है।
MongoDB में सुनिश्चित किया गया है कि 3.0.0 संस्करण के बाद से Indreexated है, अब createIndex के लिए एक उपनाम है।
अपने स्कीमा के ऑटोइंडेक्स विकल्प को गलत या विकल्प के लिए config.autoIndex सेट करके कनेक्शन पर वैश्विक रूप से सेट करके व्यवहार को अक्षम करने की अनुशंसा की जाती है।
usersSchema.set('autoIndex', false);
उपयोगी मानगो कार्य
Mongoose में कुछ ऐसे फ़ंक्शंस होते हैं जो मानक find()
पर निर्मित होते हैं।
doc.find({'some.value':5},function(err,docs){
//returns array docs
});
doc.findOne({'some.value':5},function(err,doc){
//returns document doc
});
doc.findById(obj._id,function(err,doc){
//returns document doc
});
वादों का उपयोग कर mongodb में डेटा खोजें
सेट अप
सबसे पहले, आवश्यक पैकेजों को इनस्टॉल करें:
npm install express cors mongoose
कोड
फिर, server.js
निर्भरताएं जोड़ें, डेटाबेस स्कीमा और संग्रह का नाम बनाएं, एक Express.js सर्वर बनाएं, और MongoDB से कनेक्ट करें:
var express = require('express');
var cors = require('cors'); // We will use CORS to enable cross origin domain requests.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var app = express();
var schemaName = new Schema({
request: String,
time: Number
}, {
collection: 'collectionName'
});
var Model = mongoose.model('Model', schemaName);
mongoose.connect('mongodb://localhost:27017/dbName');
var port = process.env.PORT || 8080;
app.listen(port, function() {
console.log('Node.js listening on port ' + port);
});
app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});
app.use(function(req, res, next) {
res.status(404).send('Sorry cant find that!');
});
अब Express.js मार्गों को जोड़ें, जिनका उपयोग हम डेटा को क्वेरी करने के लिए करेंगे:
app.get('/find/:query', cors(), function(req, res, next) {
var query = req.params.query;
Model.find({
'request': query
})
.exec() //remember to add exec, queries have a .then attribute but aren't promises
.then(function(result) {
if (result) {
res.json(result)
} else {
next() //pass to 404 handler
}
})
.catch(next) //pass to error handler
})
मान लें कि निम्नलिखित दस्तावेज मॉडल में संग्रह में हैं:
{
"_id" : ObjectId("578abe97522ad414b8eeb55a"),
"request" : "JavaScript is Awesome",
"time" : 1468710551
}
{
"_id" : ObjectId("578abe9b522ad414b8eeb55b"),
"request" : "JavaScript is Awesome",
"time" : 1468710555
}
{
"_id" : ObjectId("578abea0522ad414b8eeb55c"),
"request" : "JavaScript is Awesome",
"time" : 1468710560
}
और लक्ष्य "request"
कुंजी के तहत "JavaScript is Awesome"
वाले सभी दस्तावेजों को खोजने और प्रदर्शित "JavaScript is Awesome"
।
इस के लिए, MongoDB शुरू करने और चलाने के server.js
साथ node server.js
:
प्रयोग
डेटा खोजने के लिए इसका उपयोग करने के लिए, ब्राउज़र में निम्न URL पर जाएं:
http://localhost:8080/find/<query>
जहां <query>
खोज क्वेरी है।
उदाहरण:
http://localhost:8080/find/JavaScript%20is%20Awesome
आउटपुट:
[{
_id: "578abe97522ad414b8eeb55a",
request: "JavaScript is Awesome",
time: 1468710551,
__v: 0
},
{
_id: "578abe9b522ad414b8eeb55b",
request: "JavaScript is Awesome",
time: 1468710555,
__v: 0
},
{
_id: "578abea0522ad414b8eeb55c",
request: "JavaScript is Awesome",
time: 1468710560,
__v: 0
}]