1. /**
    * Created by lbc on 2016/11/16.
    */
    var mongoose=require("mongoose");
    var db=mongoose.connect('mongodb://localhost/test'); //连接数据库
    var Schema=mongoose.Schema; //创建模型
  2.  
  3. db.connection.on("error",function(error){
    console.log("数据库连接失败:"+error)
    });
    db.connection.on("open", function () {
    console.log("------数据库连接成功!------");
    });
  4.  
  5. var userSchema=new Schema({
    name:String,
    password:String
    }); //定义了一个新的模型,但是此模型还未和users集合有关联
    //扩展静态方法 extend
    userSchema.static('findByName',function(name,callback){
    return this.fund({name:name},callback);
    });
  6.  
  7. var userModel=db.model('users',userSchema);
  8.  
  9. /***************************************************************************************/
    //保存-entity
    var saveOp=function(collection){
    collection.save(function(error,doc){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(doc); // obj { __v: 0, name: 'lgb', password: 'abc123', _id: 5832bcdf78b9e9227cb0319e }
    }
    });
    };
    //新增-model
    var insertOp=function(collection,model){
    collection.create(model,function(error,doc){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(doc); // obj { __v: 0, name: 'lgb', password: 'abc123', _id: 5832bcdf78b9e9227cb0319e }
    }
    });
    };
    //更新-model
    var updateOp=function(conllection,fiter,update){
    conllection.update(fiter,update,function(error,doc){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(doc); // { ok: 1, nModified: 1, n: 1 }
    }
    });
    };
    //删除-model
    var removeOp=function(conllection,fiter){
    conllection.remove(fiter,function(error,docs){
    if(error){
    console.log('error:'+error);
    }else{
    console.log(docs); //{ result: { ok: 1, n: 1 }
    }
    });
    };
    //查询-model
    var findOp=function(collection,filter,fields,options){
    collection.find(filter,fields,options,function(error,docs){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(docs); // []
    }
    });
    };
    //查询单条-model
    var findOneOp=function(collection,filter,fields){
    collection.findOne(filter,fields,function(error,docs){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(docs); //obj
    }
    });
    };
    //查询单条-model-By _id
    var findByIdOp=function(collection,_id,fields){
    collection.findById(_id,fields,function(error,docs){
    if(error){
    console.log("error:"+error);
    }else{
    console.log(docs); //obj
    }
    });
    };
    /***************************************************************************************/
  10.  
  11. //saveOp(new userModel({name:'lbc123',password:'123'}));
    //insertOp(userModel,{name:'lgb',password:'abc123',sex:true})
    //findOp(userModel,{},null,{limit:50});
    //updateOp(userModel,{name:'lbc123'},{$set:{password:'abc123'}});
    //removeOp(userModel,{_id:'582d5eefc6fa58205c0a7161'});
    //findOneOp(userModel,{name:'lbc123'},{name:1});
    //findByIdOp(userModel,'5832a0f5b84f0a1fd0ef5770');
  12.  
  13. exports.user=userModel; //与users集合关联 映射 ORM
  14.  
  15. //filter 条件语法
    /*1. $gt(>),$lt(<),$lte(<=),$gte(>=)操作符:针对Number类型的查询具体超强的排除性。
    2. $ne(!=)操作符:相当于不等于、不包含,查询时可根据单个或多个属性进行结果排除。
    3. $in操作符:和$ne操作符用法相同,但意义相反。
    4. $or操作符:可查询多个条件,只要满足其中一个就可返回结果值。
    5. $exists操作符:主要用于判断某些属性是否存在。
    游标:
    {limit:10} 限制数量
    {skip:10} 跳过数量 数量中少于n的话,则不会返回任何结果。
    {sort:{age:-1}} 结果排序 1是升序 asc,-1是降序 desc
    */

MongooseHelper的更多相关文章

随机推荐

  1. Nagios安装

    在做安装之前确认要对该机器拥有root权限. 确认你安装好的Fedora系统上已经安装如下软件包再继续: Apache GCC编译器 GD库与开发库 可以用yum命令来安装这些软件包: yum ins ...

  2. 【TortoiseGit】TortoiseGit将本地库push到远端

    以前也在使用GitHub,2年前电脑上就装了TortoiseGit和SVN,公司也在用Git,但是并没有刻意去做一些事情,未免觉得有些生疏,今天闲来无聊.玩了一把.[做中成长] 对于GitToiseG ...

  3. Linux远程复制命令SCP

    scp test.json savo@yourdomain.com:/usr/share/nginx/test # 以上命令需配置好ssh

  4. NodeJS Addon 多线程

    Mac版本客户端准备使用electron实现,需要对现有的C API的IM SDK 做NodeJS封装,提供Javascript接口. 使用Nan,遇到的问题主要是NodeJS是libuv defal ...

  5. java反射

    知识点1:获取类字节码的三种形式 1.Class date = Date.class;//根据类名获取字节码 2.Date date= new Date(); date.getClass();//对象 ...

  6. mybatis Oracle 批量插入,批量更新

    传入的参数只要是list类型的参数就行了..............1.批量插入<insert id="insertBatch" parameterType="ja ...

  7. asp.net 读取导入的project(mpp)文件

    公司项目有用到读取project文件(.mpp)并保存到指定数据库类似的功能. 查了一下大家总结的方法. 找到一哥们代码,初步判断可行,特此收藏. using System.IO; using Mic ...

  8. HTML5 的一些小的整理吧

    主要的就是一些HTML 5 API 的使用 也是借鉴别人的博客 ,和MDN(中文部分的还是能看的懂) 上面的一些东西 具体的代码在 有道云笔记里面也有. 先把总得列出来 1.Canvas绘图 学完这个 ...

  9. 自定义 URL Scheme 完全指南

    本文由 Migrant 翻译自 The Complete Tutorial on iOS/iPhone Custom URL Schemes,转载请注明出处. 注意: 自从自定义 URL 的引入,本文 ...

  10. js 数组删去重复的加上没有的元素

    为了一个数组的删除操作竟然费了一个多小时,下面分享一下我的代码: 代码功能:判断数组里是否有我要看的元素,如果没有就添加到数组里,如果有就去掉. var selectArr=[]; function ...