您的位置:首页 > 数据库 > Mongodb

nodejs 向mongodB获取指定数目的数据

2013-05-03 22:29 246 查看
nodejs 向mongodB获取指定数目的数据
原理:通过向nodejs服务器端发送请求,nodejs 收到请求向mongodB读取五条数据,在控制台中打印出来:

nodejs段代码(新建一个文件server.js将以下代码复制其中):

var http = require("http");

var url = require("url");

var MongoClient = require('mongodb').MongoClient;

var i = 0;

var k = 5;

var flag=0;

http.createServer(function(request, response) {

if(flag == 0){

MongoClient.connect("mongodb://localhost:27017/test", function(err, db){

if(err) { return console.dir(err); }

var collection = db.collection('test');

for(i;i<k;i++){

collection.findOne(null, { skip: i }, function(err, item){

console.log(item);

});

}

k += 5;

});

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World" + i);

response.end();

flag =1

console.log('---------------------------');

}else if(flag == 1){

flag = 0;

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World" + i);

response.end();

}

}).listen(8888)

现在打开浏览器,输入以下地址:http://localhost:8888/ 如下图:



回车,查看命令行答应的日志:



可以看到前面五条数据已经获取了,刷新以下浏览器:



第六至十条数据意已经获取了。

注意,这个实验首先要创建一个有数据的数据库

以上方法可以是一个实验,但那样写并不好,但是却能给我们一些启发:

接下来还有一种方法,此方法采用 Mongoskin 模块(通过 npm install mongoskin 来获取此模块),代码如下:

var http = require("http");

var url = require("url");

var mongo = require("mongoskin");

var flag = 0;

var i=0;

http.createServer(function(request, response) {

if(flag == 0){

mongo.db('localhost:27017/test').collection('test').find({},{limit: 5,skip :i*5}).toArray(function (err, items) {

console.dir(items);

})

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World");

response.end();

flag = 1;

}else if(flag == 1){

response.writeHead(200, {"Content-Type": "text/plain"});

response.write("Hello World");

response.end();

flag = 0;

i++;

}

}).listen(8888)

代开浏览器输入地址:http://localhost:8888/ 运行结果:



刷新:



第六至十条数据出来了。

mongoskin参考地址:

https://github.com/kissjs/node-mongoskin#quickstart-1

https://github.com/christkv/node-mongodb-native/blob/master/docs/queries.md

http://stackoverflow.com/questions/10929443/nodejs-mongodb-getting-data-from-collection-with-findone
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: