当前位置: 首页 > news >正文

网站上线盈利网站服务器 购买时长

网站上线盈利,网站服务器 购买时长,c 开发商城网站开发,福田手机网站建设本文转载于 SegmentFault 社区作者#xff1a;小小蚊子在做自己的一个小项目时#xff0c;新学习了 mongodb非关系型数据库#xff0c;使用了 mongoose封装好的查询方法#xff0c;包括数据库分页用到的limit和 skip 方法#xff0c;这里记录下。一mongodb 数据库连接参照… 本文转载于 SegmentFault 社区作者小小蚊子    在做自己的一个小项目时新学习了 mongodb非关系型数据库使用了 mongoose封装好的查询方法包括数据库分页用到的limit和 skip 方法这里记录下。  一mongodb 数据库连接参照官网文档对应的参数如下mongodb://[username:password]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]使用 mongoose进行数据库的连接const dataBaseUrl config.admin.username ? mongodb://${config.admin.username}:${config.admin.pwd}${config.host}/share-resource : mongodb://${config.host}/share-resource;mongoose.connect(dataBaseUrl, { useNewUrlParser: true });若出现警告信息要求使用新的编译方式则在连接的时候加上 useNewUrlParser: trueDeprecationWarning: current URL string parser is deprecated, and will be removed in a future version.To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.mongoose.connect(dataBaseUrl, { useNewUrlParser: true });在连接数据库时对连接操作进行监听处理mongoose.connection.on(connected, function() {console.log(Mongoose connection open to dataBaseUrl);});/* 连接数据库异常 */mongoose.connection.on(error, function(err) {console.log(Mongoose connection error: err);});/* 连接数据库断开 */mongoose.connection.on(disconnected, function() {console.log(Mongoose connection disconnected);});二数据类型数据类型 (mongoose 中提供的 schemaTypes)数据类型有StringNumberDateBufferBooleanObjectIdArrayMixedMapDecimal128在数据库直接用 insert 方法进行数据插入时若不强制指定数字的类型则默认是插入double型数字。三mongoose 对数据库操作的方法3.1 数据的插入先要新建 schema文件const mongoose require(../database/mongodbHelper);const Message mongoose.Schema;const RecordModel new Message({ message: String, name: String, num: Number,},{ versionKey: false});module.exports mongoose.model(using_records, RecordModel);在使用 schema对进行数据的插入时若直接插入则会在新的集合中多出一个_v字段这个代表的是集合的版本号可以在 schema中加入versionKey: false来删除 _v字段数据插入使用 save方法const record new Record({ message: req.body.message, name: req.body.name,num: req.body.num,});record.save((err, docs) {if (err) { res.send({ status: -1, msg: 插入失败 }); } else { res.send({ status: 200, msg: 插入成功, result: }); }});3.2 数据的查询使用find 方法record.find((err, docs) {if (err) { res.send({ status: -1, msg: 参数错误 }); } else { res.send({ status: 200, msg: 查询成功, result: docs}); }});3.3 数据的更新更新一条数据updateOne/* 第一个参数为查询参数第二个为要更新的内容第三个为回调方法 */record.updateOne({_id: id}, updateInfo, (err, doc) { if(err) { res.send({status: -1, msg: 更新失败, result: }); } else { res.send({status: 200, msg: 更新成功, result: }); }})更新多条数据updateManyrecord.updateMany({user_info: {$elemMatch: {user_id: userId, status: 1, is_delete: 1}}}, {$set: {user_info.$.is_delete: 3}}, (err, doc) { if(err) { res.send({status: -1, msg: 参数错误}); } else { res.send({status: 200, msg: 清空成功}); }})3.4 数据的删除/* 第一个为要删除的内容的参数 */record.findOneAndDelete({_id: req.body.id}, (err, doc) { if(err) { res.send({status: -1, msg: 删除失败}); } else { res.send({status: 200, msg: 删除成功}); }})   四数据库的分页操作数据库的分页操作(limit 和 skip 方法)limit()方法为限制数据库每次查询的数据条数skip(param) 跳过 param 条数据不查询。/* page: 页码pagesize: 每页的数量 */let page req.body.page;let pagesize req.body.pagesize;let queryResult collection.find(queryCondition).limit(pageSize).skip((page - 1) * pageSize).sort({_id: -1});queryResult.exec((err, value) { if(err) { reject(err); } else { resolve({total, value}); }})五匹配数据匹配数据中的数组里的某个对象里的某个字段使用 $set 来设置对应的值$set: {user_info.$.status: 1}$elemMat 只匹配第一条数据当数组里存在多条一样的数据时只返回第一条数据let arr [ { is_delete: 1, name: a }, { is_delete: 1, name: b }]{$elemMatch: {is_delete: 1}}只匹配arr的第一条数据aggregate 匹配多条数据/* aggregate聚合操作$unwind将数组拆分成单个元素 * $group 分组依据 * $sum 统计 * $project 将返回值进行筛选是否返回筛选完后的某个字段 * */ message.aggregate([ { $match: {user_info.user_id: id,user_info.is_delete: 0 } }, { $unwind: $user_info }, { $group: { _id: {status: $user_info.status,}, count: {$sum: 1} } }, { $project: {_id: 0,status: $_id.status,count: 1 } } ]).then()对于匹配数组里的某项中的某个字段/* aggregate聚合操作$unwind将数组拆分成单个元素 * $group 分组依据 * $sum 统计 * $project 将返回值进行筛选是否返回筛选完后的某个字段 * */ message.aggregate([ { $match: {user_info.user_id: id,user_info.is_delete: 0 } }, { $unwind: $user_info }, { $group: { _id: {status: $user_info.status,}, count: {$sum: 1} } }, { $project: {_id: 0,status: $_id.status,count: 1 } } ]).then()对对象中的数组进行插入数据操作let arr [ { is_delete: 1,name: a }, { is_delete: 1,name: b }]/* 匹配arr中的name */$match: {arr.name: a}/* 分组筛选 */$ group: {_id: {name: $arr.name}} - END -
http://www.pierceye.com/news/309321/

相关文章:

  • 网站的数据运营怎么做国外做贸易网站
  • 网站全站开发需要学什么怎么样免费给网站做优化
  • 做的好的学校网站简单公司网页设计
  • 宿迁网站建设公司排名电子政务门户网站建设项目招标采购
  • 建立校园网站广告设计与制作需要学什么专业
  • 汽车案例网站百度云网站备案流程
  • 生产建设兵团第三师政务网站搜索引擎有哪些种类
  • 制作网站公司图片山东省建设工程质量监督总站网站
  • 物流网站模板免费长沙推广型网站建设
  • 电商网站策划做网站知乎
  • 彩票网站开发是否合法网站开发中遇到的主要问题
  • 网站建设 人员 年终总结表白网站制作器
  • 怎么发布个人网站上海网站制作推广
  • 外国人做汉字网站网站访问量过大
  • 南昌做公司网站哪家好手机端网站自动弹出营销qq
  • 网站开发参考文献2015年后出售网站平台
  • 做外国网站买域名上海网站建设的英文
  • 好看的静态网站信产部网站备案
  • 怎样建设网站 需要哪些条件wordpress安装主题要多久
  • 高端网站设计平台高端网站设计企业印象笔记wordpress同步
  • 汽车网站建设的目的公司简介模板设计图片
  • 做外贸的社交网站怎么攻击网站吗
  • 网站布局手机百度网址大全
  • 企业网站做多大擦边球做网站挣钱
  • 网站怎么备份做网站建设要学多久
  • 怎样做买东西的网站外汇期货喊单网站怎么做的
  • 博客网站推荐郑州哪里做网站
  • 贵州建设职业技术学院网站网站开发 多语言
  • 网站后台管理系统怎么进重庆建设工程安全管理局网站
  • 移动网站开发的视频下载百度网盘下载官网