模式定义:
//行程
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");
}
});
}
相关推荐
Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 0、安装nodejs和mongoDB->MongoDB的安装 1、创建express工程 2、进入工程目录...
**Mongoose 常用 CURD 操作**: 1. **连接数据库** - 使用 `mongoose.connect('mongodb://localhost/test')` 连接到 MongoDB 实例。 2. **定义模式(Schema)** - 如 `var TodoSchema = new Schema({ title: String...
本篇将详细讲解MongoDB的两个常用C#驱动——Bson和Samus,以及如何使用它们进行数据操作。 首先,Bson(Binary JSON)是MongoDB中的一个重要组成部分,它是一种二进制表示JSON数据的格式,用于高效地存储和传输数据...
mongoose为MongoDB提供了类型安全的模型,使得在Node.js中操作数据库变得简单而直观。它允许开发者定义数据模型,自动处理数据验证、查询构建以及类型转换等功能。 当你的Express工程中没有mongoose模块时,你需要...
是MongoDB的一个对象模型工具,它将数据库中的数据转换为JavaScript对象以供你在应用中使用,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。 安装模块mongoose npm...
接着这篇文章Node.js+jade抓取博客所有文章生成静态html文件的实例继续,在这篇文章中实现了采集与静态文件的生成,在实际...这篇文章我就不具体写mongodb的基本用法,到时候会另起文章从0开始写mongodb基本常用用法.先
在Node.js中,我们通常使用Mongoose库来操作MongoDB,它提供了模型(Model)、集合(Collection)和文档(Document)的概念,便于进行数据操作。 **项目结构** `nodejs-demo-master`这个压缩包可能包含了以下目录...
博客服务端使用框架:Node + Express + MongoDB + Mongoose。服务端实现功能包括注册、登录、加密、会话控制、数据的增删改查、批量删除、图片(批量)上传、字段校验、响应拦截、错误处理、关联查询等,详细说明可...
**Mongoose** 是一个用于操作MongoDB数据库的库,它为MongoDB提供了模式(Schema)的概念,使得开发者可以定义数据结构并进行验证。在社交网络API中,我们可以创建用户、帖子、评论等模型,这些模型对应于MongoDB中...
在Node.js开发中,MongoDB是一个常用的数据存储系统,而mongoose是针对MongoDB的一个强大的对象模型工具,它提供了丰富的API和类型安全,使得与MongoDB的交互变得更加简单。本教程将深入探讨如何基于事件驱动的...
- **Mongoose库**:在Node.js中,通常使用Mongoose库来操作MongoDB,它提供了一个强大的对象数据模型(ODM),方便与MongoDB交互。 - **CRUD操作**:创建(create)、读取(read)、更新(update)、删除(delete...
Mongoose是MongoDB的Node.js驱动,提供了模型(Model)、文档(Document)和操作(Operation)等概念,方便我们与数据库进行交互。 搭建流程如下: 1. **初始化项目**:首先,我们需要创建一个新的Node.js项目,...
此外,Mongoose是Node.js中常用的MongoDB驱动,提供了简化操作的API,便于数据模型定义和验证。 构建基于Node.js和MongoDB的后端系统,一般步骤包括: 1. **环境配置**:安装Node.js和MongoDB,设置数据库连接。 2...
总之,MongoDB与Spring的整合是现代Java应用中常用的数据存储方案,它结合了NoSQL数据库的灵活性和Spring框架的强大功能,为开发高效、可扩展的应用提供了便利。通过合理的设计和配置,我们可以轻松地构建出高性能、...
10. **Mongoose**:Mongoose是Node.js中常用的MongoDB对象建模工具,它提供了强大的查询构造器和模型定义功能,简化了与MongoDB的交互。 综上所述,这个项目提供了一个完整的实践经验,涵盖了从数据库设计到用户...
由于MongoDB不支持SQL查询语言,因此在Node.js中,我们通常会使用Mongoose这个ODM(对象数据模型)库来与MongoDB交互。Mongoose提供了模型和集合的概念,使得操作数据库更加方便,同时也提供了验证、静态方法、实例...
2. **MongoDB数据库操作**:使用MongoDB的官方驱动`mongodb`或者更高级的ODM(对象文档映射)库如`Mongoose`来连接和操作数据库。这些库可以帮助开发者以面向对象的方式操作数据,简化数据模型的定义和数据查询。 3...
在Node.js中,我们可以使用`mongoose`库来操作MongoDB,定义数据模型并执行CRUD(创建、读取、更新、删除)操作。 4. **Socket.IO**:在聊天室中,Socket.IO负责建立WebSocket连接,处理客户端和服务器之间的消息...
在JavaScript应用程序中,尤其是Node.js环境,MongoDB是一个常用的数据存储解决方案。Mongoose是MongoDB的Node.js驱动程序,它提供了一个强大的ORM(对象关系映射)系统,简化了与MongoDB数据库的交互。 **1. ...