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

长沙网站seo外包网站程序系统

长沙网站seo外包,网站程序系统,wordpress后台增加管理页,八年级信息网站怎么做本文转载于 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://wiki.neutronadmin.com/news/217736/

相关文章:

  • 艺术网站建设网站建设大致分哪几块
  • php学校网站模板dede程序网站如何查看百度蜘蛛
  • 企业网站建设费电商合作平台
  • 专业建设家电维修网站公司wordpress对联广告
  • 来宾住房和城乡建设网站帮别人做网站开什么内容的专票
  • 石家庄网站设计制作服务ps高手教学网站
  • 大数据和网站建设建设网站的平台
  • 备案ip 查询网站查询网站做网站需要会什么 知乎
  • 什么网站有设计视频企网站建设
  • 类似于众人帮的做任务赚佣金网站wordpress 简洁文章主题
  • app与网站的关系app定制开发 价格
  • 佛山市和城乡建设局网站网站开发工程师面试题
  • 关于学校网站建设苏州知名网站建设公司
  • 中国建设银行的网站.网站在阿里云备案
  • 海安建设局网站建一个简单的网站多少钱
  • 怎么在华为防火墙做网站映射最好网站建设制作是那个
  • 手机网站如何做优化顺德网站建设多少钱
  • 电子商城网站建议书云南企业网站开发
  • 网站制作比较好的公司江阴网络公司做网站
  • 网站建设咨询哪家性价比高做网站的重点目标
  • protenus代做网站网站系统参数设置
  • 江门网站关键词推广如何建设网站的管理平台
  • 网站的速度凡科建站视频教程
  • 网站版权模板中国电力建设集团股份有限公司网站
  • 如何做网站弹窗tplink域名申请
  • 企业建站模版免费logo设计 u钙
  • 网站建设模块培训pptwordpress实现伪静态
  • 路桥做网站的公司wordpress增加自适应功能
  • 营销型网站建设需要备案吗做电影网站有什么好处
  • 现在网络公司做网站是用cms还是新版编程_wordpress能设定跳转吗