mongodb

来源:互联网 发布:淘宝4钻店铺值多少钱 编辑:程序博客网 时间:2024/06/08 20:00
字段的筛选
查询操作中对于那些需要返回的字段,我们可以直接设置相应字段的属性值为1就可以了。但当同时出现多个选项时,这样就不能很好地工作了。请看下面这个示例:
var mongodb=require('mongodb');var debug=require('./debug');var MongoClient = mongodb.MongoClient;MongoClient.connect('mongodb://localhost:27017/TIM', function(err, db) {    if(err)        debug.out(err);    else    {        db.authenticate("TIMUser","AsManyAsKrills",function(err,ret){            if(err)            {                debug.out(err);                return;            }            else            {                var coll = db.collection("TIMSession");                //对于这个选项,如果没有使用'limit'属性来限制返回的记录数,则返回的记录不会包含'_id'字段。                //也就是{'_id':0,'tn':1}能够正常工作。但当我们加入'limit'属性时,返回的3条记录中依旧包含'_id'字段,                //也就是说,{'_id':0,'tn':1}此时已经不能正常工作了。                //为了保证代码的严谨性,我们应该始终使用fields来表示我们需要过虑哪些字段。于是option最终的写法由                //var option={'_id':0,'tn':1,'limit':3};                //变成了下面这样,注意fields前面并没有$,否则                var option={fields:{'_id':0,'tn':1},'limit':3};                coll.find({},option).toArray(function(err,result){err?debug.out(err):debug.out(result);db.close();});                //可以看到,返回的3条记录中,'_id'字段被正确过虑掉了。                //[ { tn: Wed May 20 2015 09:48:06 GMT+0800 (中国标准时间) },                //{ tn: Fri May 22 2015 11:24:09 GMT+0800 (中国标准时间) },                //{ tn: Fri May 22 2015 11:24:13 GMT+0800 (中国标准时间) } ]                //coll.count(function(err,count){err?debug.out(err):debug.out(count);db.close();});                //coll.distinct('token',{'db':'G1'},function(err,result){err?debug.out(err):debug.out(result);db.close();});                //{'db':'G1'}是一个可选的查询条件,上述代码的意思是查询所有'db'为'G1',返回所有'token'不相同的值(仅是'token'字段的值)            }        });    }});


0 0