`

mongoose mongodb常用操作

阅读更多

模式定义:

 //行程

var CarpoolTralvelSchema = new Schema({

    car:{

        type:Schema.Types.ObjectId,

        ref:"carpoolCar"

    },//车辆信息

    travel:{

        type:Schema.Types.ObjectId,

        ref:"carpoolTralvel"

    },//搭车人引用的开车人发起的CarpoolTralvel id

    userId:String,//用户id

    userName:String,//用户名字

    userType:Number,//1:开车人;2:搭车人

    startCityCode:String,//出发城市代码

    startCity:String,//出发城市

    startAddress:String,//出发地点

    arriveCityCode:String,//达到城市代码

    arriveCity:String,//达到城市

    arriveAddress:String,//到达地点

    startDate:Number,//出发日期时间

    travelSerialNumber:String,//行程流水号(8位数字,递增)

    twoDimensionalCode:String,//二维码(行程流水号+开车人id+搭车人id)整体base64

    seatCount:Number,//提供座位数

    bookedSeatCount:Number,//已预定座位数

    seatState:Number,//0 未满;1已满;

    filter:[],//要求 

    state:Number,//0:正常     1:被踢     2:取消行程     3取消预约

   // evaluates:[],//评价记录   

   // rejects:[],//拒绝记录 

    createdAt:Number,//建立日期时间

    updateTime:Number,//最后修改日期时间

    createUser:String,//创建人

    remark:String  //备注

});

 

//汽车

var CarpoolCarSchema = new Schema({

    carOwnerId:String,//车主id(工号)

    carOwnerName:String,//车主姓名

    carType:String,//车型 suv  房车

    carSeat:Number,//座位数

    carModel:String,//品牌 bmw

    carColor:String,//颜色id

    carNumber:String,//车牌

    carImg:{

        type:Schema.Types.ObjectId,

        ref:"carpoolAttachment"

    },//图片

    createdAt:Number,//建立日期时间

    updateTime:Number//最后修改日期时间

});

常用crud

 

function findOne(Response) {

    var db = mongoose.createConnection("mongodb://10.10.1.147:27017/mobile");

    var carModel = db.model("carpoolCar", sm.CarpoolCarSchema);

    carModel.findOne({

        userId : "xxx"

    }).exec(function(err, doc) {

        db.close();

        console.log("doc", doc);

        Response.end("haha");

    });

}

 

function findById(Response) {

    var db = mongoose.createConnection("mongodb://mobile:mobile_1234@10.10.1.183:27017/mobile");

    var carModel = db.model("carpoolCar", sm.CarpoolCarSchema);

    carModel.findById("xxx", function(err, doc) {

        db.close();

        console.log("doc", doc);

        Response.end("haha");

    });

}

 

function findOneAndUpdate(Response) {

    var db = mongoose.createConnection("mongodb://mobile:mobile_1234@10.10.1.183:27017/mobile");

    var pushMessageModel = db.model("basePushMessage", sm.BasePushMessageSchema);

    pushMessageModel.findOneAndUpdate({

        appId : "333",

        userId : "888"

    }, {

        $inc : {

            badgeNum : 1

        }

    }, {

        upsert : true

    }, function(err, doc) {

        db.close();

        console.log(err);

        Response.end(JSON.stringify(doc));

    });

}

 

function insertTest(Response) {

    var db = mongoose.createConnection("mongodb://10.10.1.147:27017/mobile");

    var carpoolTravelCountModel = db.model("carpoolTravelCount", sm.CarpoolTravelCountSchema);

    var carpoolTravelCountEntity = new carpoolTravelCountModel({

        userId : "0658",

        count1 : 333,

        count2 : 888

    });

    carpoolTravelCountEntity.save(function(err, doc) {

        db.close();

        if (!err) {

            Response.end(JSON.stringify({

                data : doc

            }));

        } else {

            Response.end("fail");

        }

    });

 

}

 

function findById2(Response) {

    var db = mongoose.createConnection("mongodb://mobile:mobile_1234@10.10.1.183:27017/mobile");

    var attachmentModel = db.model("carpoolAttachment", sm.CarpoolAttachmentSchema);

    var carModel = db.model("carpoolCar", sm.CarpoolCarSchema);

    carModel.findById("54b3ceeca89ea0321625b1e5").populate("carImg").exec(function(err, data) {

        Response.setHeader("Content-type", "text/json;charset=utf-8");

        db.close();

        if (!err) {

            Response.end(JSON.stringify({

                data : data

            }));

        } else {

            console.log("err--->", err);

            Response.end("fail");

        }

    });

}

 

function subDocumentTest(Response) {

    var db = mongoose.createConnection("mongodb://mobile:mobile_1234@10.10.1.183:27017/mobile");

    var testModel = db.model("test", sm.TestSchema);

    var testEntity = new testModel({

        name : "hello",

        address : {

            city : "北京",

            street : "朝阳"

        }

    });

 

    testEntity.save(function(err, doc) {

        Response.setHeader("Content-type", "text/json;charset=utf-8");

        db.close();

        console.log("err", err);

        if (!err) {

            Response.end(JSON.stringify({

                status : "0",

                doc : doc

            }));

        } else {

            Response.end("fail");

        }

    });

}

 

function huiyishiTest(Param, Response) {

    var startTime = parseInt(Param.params.startTime);

    var endTime = parseInt(Param.params.endTime);

    var db = mongoose.createConnection("mongodb://wdh:wdh@192.168.78.132:27017/wdh");

    var HuiyishiSchema = new Schema({

        name : String,

        admin : [],

        startTime : Number,

        endTime : Number

    });

    var huiyishiModel = db.model("huiyishi", HuiyishiSchema);

    Response.setHeader("Content-type", "text/json;charset=utf-8");

    huiyishiModel.find({

        startTime : {

            "$lte" : endTime

        },

        endTime : {

            "$gte" : startTime

        }

    }, {

        _id : 1

    }).exec(function(err, data) {

        if (!err) {

            console.log("被预定会议室:", data);

            //查询出没有被预约的会议室

            huiyishiModel.find({

                _id : {

                    "$nin" : data

                }

            }).exec(function(err, data1) {

                db.close();

                if (!err) {

                    Response.end(JSON.stringify({

                        status : "0",

                        msg:data1.length>0?"有空闲会议室":"没有空闲会议室",

                        data : data1

                    }));

                } else {

                    console.log(err);

                    Response.end(JSON.stringify({

                        status : "-1",

                        msg : "查询失败"

                    }));

                }

            });

            ;

        } else {

            db.close();

            Response.end("查询失败");

        }

    });

}

 

function dynamicQuery(Response){

    var arg = {name:"root1"};

    var query = {};

    if(arg.root1){

        query.name = arg.name;

    }

    if(arg.startTime){

        query.startTime = parseInt(arg.startTime);

    }

    console.log(query);

    var db = mongoose.createConnection("mongodb://wdh:wdh@192.168.78.132:27017/wdh");

    var HuiyishiSchema = new Schema({

        name : String,

        admin : [],

        startTime : Number,

        endTime : Number

    });

    var huiyishiModel = db.model("huiyishi", HuiyishiSchema);

    huiyishiModel.find(query).exec(function(err,data){

        db.close();

        Response.setHeader("Content-type", "text/json;charset=utf-8");

        if(!err){

            Response.end(JSON.stringify({

                status:"0",

                data:data

            }));

        }else{

           Response.end("fail"); 

        }

    });

 

}

分享到:
评论

相关推荐

    express使用Mongoose连接MongoDB操作示例【附源码下载】

    Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 0、安装nodejs和mongoDB->MongoDB的安装 1、创建express工程 2、进入工程目录...

    Mongodb 数据类型及Mongoose常用CURD

    **Mongoose 常用 CURD 操作**: 1. **连接数据库** - 使用 `mongoose.connect('mongodb://localhost/test')` 连接到 MongoDB 实例。 2. **定义模式(Schema)** - 如 `var TodoSchema = new Schema({ title: String...

    MongoDB-C#常用驱动

    本篇将详细讲解MongoDB的两个常用C#驱动——Bson和Samus,以及如何使用它们进行数据操作。 首先,Bson(Binary JSON)是MongoDB中的一个重要组成部分,它是一种二进制表示JSON数据的格式,用于高效地存储和传输数据...

    express 工程,没有mongoose模块

    mongoose为MongoDB提供了类型安全的模型,使得在Node.js中操作数据库变得简单而直观。它允许开发者定义数据模型,自动处理数据验证、查询构建以及类型转换等功能。 当你的Express工程中没有mongoose模块时,你需要...

    详解Nodejs基于mongoose模块的增删改查的操作

    是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 安装模块mongoose npm...

    Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法

    接着这篇文章Node.js+jade抓取博客所有文章生成静态html文件的实例继续,在这篇文章中实现了采集与静态文件的生成,在实际...这篇文章我就不具体写mongodb的基本用法,到时候会另起文章从0开始写mongodb基本常用用法.先

    node.js结合mongodb构建的web项目

    在Node.js中,我们通常使用Mongoose库来操作MongoDB,它提供了模型(Model)、集合(Collection)和文档(Document)的概念,便于进行数据操作。 **项目结构** `nodejs-demo-master`这个压缩包可能包含了以下目录...

    Node+Express+MongoDB+Mongoose打造属于自己的个人博客系统,前后端分离

    博客服务端使用框架:Node + Express + MongoDB + Mongoose。服务端实现功能包括注册、登录、加密、会话控制、数据的增删改查、批量删除、图片(批量)上传、字段校验、响应拦截、错误处理、关联查询等,详细说明可...

    social-network-api:第18周的挑战,即使用npm mongoose和mongodb构建网络后端

    **Mongoose** 是一个用于操作MongoDB数据库的库,它为MongoDB提供了模式(Schema)的概念,使得开发者可以定义数据结构并进行验证。在社交网络API中,我们可以创建用户、帖子、评论等模型,这些模型对应于MongoDB中...

    mongoose封装类

    在Node.js开发中,MongoDB是一个常用的数据存储系统,而mongoose是针对MongoDB的一个强大的对象模型工具,它提供了丰富的API和类型安全,使得与MongoDB的交互变得更加简单。本教程将深入探讨如何基于事件驱动的...

    express+mongodb笔记

    - **Mongoose库**:在Node.js中,通常使用Mongoose库来操作MongoDB,它提供了一个强大的对象数据模型(ODM),方便与MongoDB交互。 - **CRUD操作**:创建(create)、读取(read)、更新(update)、删除(delete...

    vue2nodemongodb搭建的个人博客管理系统

    Mongoose是MongoDB的Node.js驱动,提供了模型(Model)、文档(Document)和操作(Operation)等概念,方便我们与数据库进行交互。 搭建流程如下: 1. **初始化项目**:首先,我们需要创建一个新的Node.js项目,...

    Backend system based on node.js + Mongodb. 基于 node.js + Mongodb

    此外,Mongoose是Node.js中常用的MongoDB驱动,提供了简化操作的API,便于数据模型定义和验证。 构建基于Node.js和MongoDB的后端系统,一般步骤包括: 1. **环境配置**:安装Node.js和MongoDB,设置数据库连接。 2...

    MongoDB与Spring整合

    总之,MongoDB与Spring的整合是现代Java应用中常用的数据存储方案,它结合了NoSQL数据库的灵活性和Spring框架的强大功能,为开发高效、可扩展的应用提供了便利。通过合理的设计和配置,我们可以轻松地构建出高性能、...

    基于node和express4.X和mongodb的博客系统

    10. **Mongoose**:Mongoose是Node.js中常用的MongoDB对象建模工具,它提供了强大的查询构造器和模型定义功能,简化了与MongoDB的交互。 综上所述,这个项目提供了一个完整的实践经验,涵盖了从数据库设计到用户...

    使用express+mongoDB+navieUI的博客后端系统.zip

    由于MongoDB不支持SQL查询语言,因此在Node.js中,我们通常会使用Mongoose这个ODM(对象数据模型)库来与MongoDB交互。Mongoose提供了模型和集合的概念,使得操作数据库更加方便,同时也提供了验证、静态方法、实例...

    基于node.js+ MongoDB的mircoblog

    2. **MongoDB数据库操作**:使用MongoDB的官方驱动`mongodb`或者更高级的ODM(对象文档映射)库如`Mongoose`来连接和操作数据库。这些库可以帮助开发者以面向对象的方式操作数据,简化数据模型的定义和数据查询。 3...

    NodeJS MongoDB打造多人在线聊天室.zip

    在Node.js中,我们可以使用`mongoose`库来操作MongoDB,定义数据模型并执行CRUD(创建、读取、更新、删除)操作。 4. **Socket.IO**:在聊天室中,Socket.IO负责建立WebSocket连接,处理客户端和服务器之间的消息...

    exercise-log:将MongoDB与Mongoose模式结合使用的健身跟踪器

    在JavaScript应用程序中,尤其是Node.js环境,MongoDB是一个常用的数据存储解决方案。Mongoose是MongoDB的Node.js驱动程序,它提供了一个强大的ORM(对象关系映射)系统,简化了与MongoDB数据库的交互。 **1. ...

Global site tag (gtag.js) - Google Analytics