/**
* Created by lbc on 2016/11/16.
*/
var mongoose=require("mongoose");
var db=mongoose.connect('mongodb://localhost/test'); //连接数据库
var Schema=mongoose.Schema; //创建模型 db.connection.on("error",function(error){
console.log("数据库连接失败:"+error)
});
db.connection.on("open", function () {
console.log("------数据库连接成功!------");
}); var userSchema=new Schema({
name:String,
password:String
}); //定义了一个新的模型,但是此模型还未和users集合有关联
//扩展静态方法 extend
userSchema.static('findByName',function(name,callback){
return this.fund({name:name},callback);
}); var userModel=db.model('users',userSchema); /***************************************************************************************/
//保存-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
}
});
};
/***************************************************************************************/ //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'); exports.user=userModel; //与users集合关联 映射 ORM //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. 高性能MySQL(三):服务器性能剖析

    select * from c LEFT JOIN c100w on c.id=c100w.id; -- 联合查询 show PROFILES; -- 查看查询耗时 select * from c; ...

  2. 终于遇到app不兼容,你遇到了么?

    题记: 如果支付宝和QQ不兼容,要二选一,你会怎么选择? 首先了解一下背景: 笔者最近发现,微众银行的app升级到1.7.4, 而患有轻度强迫症的人是迫不及待的点了升级. 第一次,居然安装包安装不成功 ...

  3. Mosquitto搭建Android推送服务(四)Mosquitto服务器用户登录与权限配置

    文章钢要: 1.对服务器进行多用户配置 2.根据不同用户给予不同权限 一.Mosquitto的用户机制 mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作 ...

  4. iOS常用第三方开源框架和优秀开发者博客等

    博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...

  5. [Sass]占位符 %placeholder

    [Sass]占位符 %placeholder Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能,这也是我非常喜欢的功能.他可以取代以前 CSS 中的基类造成的代码冗余 ...

  6. swift错误 Expressions are not allowed at the top level

    ``` ... earlier we said top-level code isn't allowed in most of your app's source files. The excepti ...

  7. 订货(bzoj 2424)

    Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初的库存量为零,第n月月底的库存量也为 ...

  8. C#设计模式之原型模式

    原型模式:使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象. 分析: 孙悟空:根据自己的形状复制(克隆)出多个身外身 软件开发:通过复制一个原型对象得到多个与原型对象一模一样的新对 ...

  9. ArrayList、Vector、LinkedList源码

    List接口的一些列实现中,最常用最重要的就是这三个:ArrayList.Vector.LinkedList.这里我就基于JDK1.7来看一下源码. public class ArrayList< ...

  10. Mac系统下React Native环境搭建

    这里记录一下在Mac系统下搭建React Native开发环境的过程: 1. 安装HomeBrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...