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

2019做网站seo行不行html软件哪个好用

2019做网站seo行不行,html软件哪个好用,品牌网站建设9小蝌蚪9a,山东线上推广软件本文转载于 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.sadfv.cn/news/260510/

相关文章:

  • 怎样做网站设计手机网站返回跳转
  • 网站访客qq统计 原理建设部官方网站有哪些
  • 做网站后台程序是怎么来的wordpress标题修改
  • 服务中心网站建设方案网站建设招标需求
  • 给别人做ppt的网站中国最好的网络营销公司
  • 网站效果展示全国疾病监测系统
  • 网站平台建设需要哪些人员搜狗联盟
  • 成品网站模板下载新东方厨师学费价目表
  • 国外贸易网站网站建设 运维 管理
  • 广东计算机网页制作关键词优化排名软件案例
  • 学校网站建设要点网上电商
  • 苏州网站建设企业网站制作seo统计
  • 住房和建设部网站首页赣州城市资讯
  • 好网站开发公司网站开发建设好处
  • 蓬莱网站建设价格WordPress文章首页缩进
  • 湘潭免费网站建设wordpress 支付宝付款
  • 推广普通话征文seo流量排名工具
  • 给网站做备案买完域名后怎么搭建个人网站
  • 国色天香站长工具广告平台源码
  • 手机网站宽度是多少lovevideo门户视频wordpress主题
  • 网站 关键词 多少个去掉网址中的wordpress
  • 网站移动终端建设工作室建设规划
  • 局域网 手机网站建设海南新闻在线中心
  • php网站后台页面国网电子商务平台官网
  • wordpress 段代码百度seo优化教程免费
  • 益阳市 网站建设互联网企业网站
  • 怎么建设推广网站网站开发项目私活
  • 网站qq弹窗介绍做素食的网站
  • 西昌市建设工程管理局网站住建局查询房产信息
  • 怎样做淘宝联盟的网站网站模版如何去除title版权信息