这是我第一次提问,这基本上是我找到答案的最后手段。我是一个菜鸟和初学者在javascript所以请使用简单的条款与我。
所以我有一个问题。我不知道如何查询。 - 像我一样,我将所有查询都放在一个脚本中,或者我必须将它们分成不同的脚本。 - 现在,我有一个server.js,我把所有代码放在那里。包括查询。那么我如何只运行其中一个。 - 如果有这样的事情让我查询另一个数字,如4.我是否必须回到脚本手动从'110'更改为'4'或者我可以在某处输入它。
一些例子是: //长度为110
db.collection.find({length: "110"}, function(err, collection) {
if( err || !collection) console.log("No collections with 110 in length");
else collection.forEach( function(length) {
console.log(length);
} );
});
//显示长度为110且长度为340的记录
var length = ['110', '340']
length = length.join('|');
var re = new RegExp(length, 'i')
db.collection.find({length:{$regex: re}}, function(err, collection) {
if( err || !collection ) console.log("User not found");
else collection.forEach (function(length){
console.log(length);
});
});
我如何查询只在mongodb中运行其中一个。帮助很多人帮助
答案 0 :(得分:0)
您已经知道node.js用于制作服务器。因此,有两种方法可以查询数据库。由于您是节点的新手,我将列出两种方式:
1.用于查询数据的http GET(标准方式)
您可以编写一个简单的http服务器并设置获取所需数据类型的路径。我已经编写了一个小文件,以便您可以理解:
var express = require('express');
var http = require('http');
var app = express();
var bodyParser = require('body-parser');
// Db settings
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/my_database_name';
function getConnection(url, callback) {
MongoClient.connect(url, function(dbErr, dbRes) {
if(dbErr) {
return callback(err, null);
}
callback(null, dbRes);
});
}
// Configure app to use bodyparser
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
var port = process.env.PORT || 7013;
app.set('port', port);
app.use(function(req, res, next) {
console.log(req.ip+ ":"+port + req.url + " "+req.method);
next();
});
app.get('/getCityData', function(req, res, next) {
var cityName = req.query.city;
getConnection(url, function(conErr, db) {
if(conErr) {
return res.send("ERROR IN GETTING connection");
}
var cityCollection = db.collection('cities');
cityCollection.find({"city":cityName}).toArray(function(err, result) {
if(err) return res.send("error in querying data");
db.close();
res.send(result);
});
});
});
var httpServer = http.createServer(app).listen(port, function() {
console.log("Express server listening on port "+app.get('port'));
});
2.使用命令行参数:
您也可以通过将参数传递给查询来使用命令行参数轻松实现,但它的灵活性较低:
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/my_database_name';
function getConnection(url, callback) {
MongoClient.connect(url, function(dbErr, dbRes) {
if(dbErr) {
return callback(err, null);
}
callback(null, dbRes);
});
}
var cityName = process.argv[2]; // that's the argument you'd receive
getConnection(url, function(conErr, db) {
if(conErr) {
return res.send("ERROR IN GETTING connection");
}
var cityCollection = db.collection('cities');
cityCollection.find({"city":cityName}).toArray(function(err, result) {
if(err) return res.send("error in querying data");
db.close();
console.log(result);
});
});
我希望它有所帮助