node.js学习mongoDB驱动——查询数据

/*
 * 在MongoDB数据库中查询数据
 * */
var mongo = require('mongodb');
var host = 'localhost';
var port = 27017;

var server = new mongo.Server(host,port,{auto_reconnect:true});
var db = new mongo.Db('node-mongo-examples',server,{safe : true});

db.open(function (err, db) {
    db.collection('user',function (err, collection) {
        if(err)
            throw err;
        else {
            //查询文档
            //collection.find(selector,[options]).toArray(callback)
            //selector为一个对象,代表查询条件

            collection.find({}).toArray(function (err, docs) {
               if(err)
                   throw err;
               else {
                   console.log(docs);
                   db.close();
               }
            });
        }
    });
});

运行结果:



/*
 * 1、可以在查询条件中指定需要查询的字段及字段值:
 *      {< 字段名 >:< 字段值 >}
 * 2、可以在查询条件中指定需要查询的字段并限定字段范围
 *      {<字段名>:[$in : <字段值1>,<字段值2>...]}
 */

/*插入数据*/
var mongo = require('mongodb');
var host = 'localhost';
var port = 27017;

var server = new mongo.Server(host,port,{auto_reconnect:true});
var db = new mongo.Db('node-mongo-examples',server,{safe : true});
var docs = [{type:'food',price:11},
            {type:'food',price:10},
            {type:'food',price:9},
            {type:'food',price:8},
            {type:'book',price:9}];
db.open(function (err, db) {
   db.collection('goods',function (err, collection) {
       collection.insert(docs,function (err, docs) {
           console.log(docs);
       });
   });
});
查询数据:

/*"且"和"或"的查询*/
var mongo = require('mongodb');
var host = 'localhost';
var port = 27017;

var server = new mongo.Server(host,port,{auto_reconnect:true});
var db = new mongo.Db('node-mongo-examples',server,{safe : true});
db.open(function (err, db) {
    if(err)
        throw err;
    else {
        db.collection('goods',function (err, collection) {
                //查找goods集合中type字段等于“food”,且  price字段值小于10的数据
            //collection.find({type:'food',price:{$lt:10}}).toArray(function (err, docs) {

                //查找goods集合中type字段等于“food”  或者  price字段值小于10的数据
            //collection.find({ $or: [{type:'food'} , {price:{$lt:10}}] }).toArray(function (err, docs) {

                //查找goods集合中type字段等于"food" 且 price字段值等于11 或者 price字段值小于9的数据
            collection.find({type:'food',$or:[{price:11},{price:{$lt:9}}]}).toArray(function (err, docs) {
                if(err)
                    throw err;
                else{
                    console.log(docs);
                    db.close();
                }
            });
        });
    }
});



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值