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

南京做电商网站的公司简介百度推广怎么赚钱

南京做电商网站的公司简介,百度推广怎么赚钱,怎样在百度做网站打广告,企业建站系统平台目录 一、理论 1.MongoDB文档管理 2.MongoDB索引管理 二、实验 1.MongoDB文档管理 2.MongoDB索引管理(索引添加与删除) 3.MongoDB索引管理(全文索引) 4.MongoDB索引管理(多列索引) 5.MongoDB索引管…

目录

一、理论

1.MongoDB文档管理

2.MongoDB索引管理

二、实验

1.MongoDB文档管理

2.MongoDB索引管理(索引添加与删除)

3.MongoDB索引管理(全文索引)

4.MongoDB索引管理(多列索引)

5.MongoDB索引管理(ttl索引)

三、问题

1.查询执行情况报错

2.创建索引失败

3.find查询报错


一、理论

1.MongoDB文档管理

(1)数据类型

表1 数据类型

Type描述
ObjectID用于存储文档的ID,相当于主键,区分文档的唯一字段,mongoDB中就是一个对象的返回值
String字符串是最常用的数据类型,MongoDB中的字符串必须是UTF-8编码。
Integer整数类型用于存储数值。整数可以是32位,也可以是64位,这取决于你的服务器。
Double双精度类型用于存储浮点值,mongodb中没有float浮点数这个说法
Boolean布尔类型用于存储布尔值(true/ false)
Arrays将数组、列表或多个值存储到一个键,[]
Timestamp时间戳,用于记录文档何时被修改或创建。Date(),Timestamp(),ISODate()
Object用于嵌入文档, 相当于子属性是另一个json文档而已,这种方式就可以实现嵌套。 []
Null空值,相当于 python的None
Symbol与字符串用法相同,常用于某些使用特殊符号的语言,二进制
Date用于以UNIX时间格式存储当前日期或时间。
Binary data二进制数据,常用于保存文件的内容,往往是图片,数据本身。
Code用于将JavaScript代码存储到文档中
Regular expression正则表达式

(2)条件运算符(查询器)

①比较运算

表2 比较运算

操作格式语法例子SQL中的类似语句
等于{<key>:<val>} {<key>:{$eq:<val>}}db.集合.find({"name":"xiaoming"})where name = 'xiaoming'
小于{<key>:{$lt:<val>}}db.集合.find({"age":{$lt:17}})where age  < 17
小于或等于{<key>:{$lte:<val>}}db.集合.find({"age":{$lte:17}})where age  <= 17
大于{<key>:{$gt:<val>}}db.集合.find({"age":{$gt:17}})where age > 17
大于或等于{<key>:{$gte:<val>}}db.集合.find({"age":{$gte:17}})where age >= 17
不等于{<key>:{$ne:<val>}}db.集合.find({"age":{$ne:17}})where age != 17
包含{<key>:{$in:[<val>...]}}db.集合.find({"age":{$in:[1,2,3]}})where age in (1,2,3)

②逻辑运算

表3 逻辑运算

操作语法语法例子
$and{<key>:<val>,<key>:<val>,...} {$and: [{key:{$运算符:<val>}},....]}db.集合.find({key1:value1, key2:value2})
$or{$or: [{<key>: {$运算符:<val>}}, ....]}db.集合.find({$or: [{key1: value1}, {key2:value2}]})
$and$or`{<key>:<val>, $or: [{<key>: {<$运算符>:<val>}},...]}`<br>`{$and:[{$or:[{<key>:{<$运算符>:<val>}},..]},$or:[{<key>:{<$运算符>:<val>}},..]}]}`db.集合.find({key1:value1, $or: [{key1: value1}, {key2:value2}]})
$not{<key>:{$not:{<$运算符>:<val>}}}`$not`操作符不支持``$regex`正则表达式操作

③其他运算符

表4 其他运算符

操作格式法例子说明
$type{<key>:{$type: <datetype>}}db.集合.find({"name":{$type:'string'}})匹配指定键是指定数据类型的文档 number 数值型 string 字符串 bool 布尔类型 object json文档对象类型 array 数组类型
$exists{<key>:{$exists:<bool>}db.集合.find({"title":{$exists:true}})匹配具有指定键的文档,存在指定字段的文档
$regex`{ <key>:/模式/<修正符>}`<br>`{<key>:{$regex:/模式/<修正符>}}`db.集合.find({"name":{$regex:/张$/}})按正则匹配
$mod{<key>: {$mod: [除数, 余数]}}db.集合.find({"age":{$mod:[10,0]}})算数运算,取模,语法中举例是age除以10==0

(3) update更新运算符(修改器)

表5  update更新运算符

操作语法说明
$incdb.集合.update({<key1>:<val1>},{$inc:{<key2>:<val2>}})更新key1=val1的文档中key2的值为val2,类似python的递增递减<br>递减,则`{ $inc:{<key2>:-<val2>} }`
$setdb.集合.update({<key1>:<val>}, {$set:{<key2>:<val2>}})更新key1=val1的文档中key2的值为val2,如果key2不存在则新增对应键值对
$unsetdb.集合.update({<key1>:<val>}, {$unset:{<key2>:<val2>}})移除key1=val1的文档中key2=val2这个键值对
$pushdb.集合.update({<key1>:<val>}, {$push:{<key2>:<val2>}})给key1=val1的文档中key2列表增加1个数组成员val2。<br>key2必须是数组。
$pulldb.集合.update({<key1>:<val>}, {$pull:{<key2>:<val2>}})与push相反,给key1=val1的文档中key2列表删除1个指定成员val2
$popdb.集合.update({<key1>:<val>}, {$pop:{<key2>:<val2>}})给key1=val1的文档中key2列表移除第一个或最后一个成员。 val2只能是1(最后面)或-1(最前面),与python相反

2.MongoDB索引管理

(1)stage的扫描类型

表6 stage的扫描类型

类型名称描述期望
COLLSCAN全表扫描False
IXSCAN索引扫描True
FETCH根据索引去检索指定documentTrue
IDHACK针对_id进行查询True
COUNTSCANcount不使用Index进行count时返回False
COUNT_SCANcount使用了Index进行count时返回True
SUBPLA未使用到索引的$or查询时返回False
TEXT使用全文索引进行查询时返回-
SORT使用sort排序但是无index时返回False
SKIP使用skip跳过但是无index时返回False
PROJECTION使用limit限定结果但是无index时返回False

(2)注意事项

1) MongoDB的索引是存储在运行内存(RAM)中的,所以必须确保索引的大小不超过内存的限制。如果索引的大小超过了运行内存的限制,MongoDB会删除一些索引,这将导致性能下降。2) MongoDB的索引在部分查询条件下是不会生效的。-   正则表达式及非操作符,如 `$nin`,`$not` , 等。-   算术运算符,如 $mod, 等。-   $where自定义查询函数。-   ...3)索引会在写入数据(添加、更新和删除)时重排,如果项目如果是写多读少,则建议少使用或者不要使用索引。4) 一个集合中索引数量不能超过64个。5) 索引名的长度不能超过128个字符。6) 一个复合索引最多可以有31个字段。7) mongodb索引统一在`system.indexes`集合中管理。这个集合只能通过`createIndex`和`dropIndexes`来操作。

二、实验

1.MongoDB文档管理

(1)排序

(2)regex 正则匹配

(3)取年龄

(4)前5个和第6个开始

db.user_list.find({},{"_id":0,"name":1,"age":1}).sort({"age":1}).limit(5);

(5)查询所有数据

(6)laoli 减去2岁

db.user_list.updateMany({name:"laoli"},{$inc:{age:-2}})

(7)xiaoming都改为20岁

 db.user_list.updateMany({name:"xiaoming"},{$set:{age:20}})

(8)xiaoming都增加2岁

> db.user_list.updateMany({name:"xiaoming"},{$inc:{age:2}})

(9)删除所有有手机号的

db.user_list.updateMany({name:"xiaoming",mobile:{exists:true}},{$unset:{mobile:true}})

(10)往列表属性中追加成员

db.user_list.update({"name":"laoli"},{$push:{"lve":"code"}}); 

(11)删除列表成员

db.user_list.update({"name":"laoli"},{$pull:{"lve":"TV"}});

(12)$addToSet 结合 $each 把一个数组中每一个成员添加到数组中

db.user_list.update({"name":"laoli"},{$addToSet:{"lve":{$each:["run","swim","ball"]}}});

(13)左边移除列表的第一个成员

 db.user_list.update({"name":"laoli"},{$pop:{"lve":-1}}); 

(14)右边移除列表的最后一个成员

db.user_list.update({"name":"laoli"},{$pop:{"lve":1}});

(15)$rename 字段名重命名

db.user_list.update({"name":"laoli"},{$rename:{"lve":"love"}});

2.MongoDB索引管理(索引添加与删除)

(1)获取当前集合中已经创建的索引总大小,以字节为单位返回结果

(2)获取当前数据库中所有的索引(不会显示_id主键)

(3)查询MongoDB

(4)查询1条数据,准备用user_id做 索引

(5)新增索引(6)查看是否走索引

> db.orders.find({user_id:10}).count()
200
> db.orders.find({user_id:101}).count()
200
> db.orders.find({user_id:101}).explain("executionStats");

(7)倒叙查询,显示先查询(104M数据)再索引

(8)索引迭代2个版本

(9)3微秒执行402次

(10)执行完成

(11)准备选取2个做索引

(12)创建索引

(13)查看索引数量(第一个为默认的主键索引,第二个为单字段普通索引,第三个为多字段索引)

(14)走了索引

db.orders.find({"date":"2020-09-01"}).explain("executionStats");

(15)还是走了索引(只要有1个满足就会走索引)

db.orders.find({"date":"2020-09-01","onumber":"0000000000001007"}).explain("executionStats");

(16)没条件满足会走全表扫描

db.orders.find({"title":"购买商品-1007","onumber":"0000000000001007"}).explain("executionStats");

(17)删除单字段索引

(18)删除多字段索引

> db.orders.dropIndex("user_id_1")
{ "nIndexesWas" : 3, "ok" : 1 }
> db.orders.getIndexes()

(19)全表扫描

> db.orders.find({"date":"2020-04-17","title":"赠送礼品-10"});> db.orders.find({"date":"2020-09-01","title":"赠送礼品-10"}).explain("executionStats");

(20)添加多字段索引,查询为索引扫描

> db.orders.createIndex({"date":1,"user_id":1});> db.orders.find({"date":"2020-09-01","title":"赠送礼品-10"}).explain("executionStats");

3.MongoDB索引管理(全文索引)

(1)默认支持英文

(2)查询基本使用,命中全文索引

db.orders.find({$text:{$search:"商品-19"}}).explain("executionStats")

(3)还有倒序步骤

4.MongoDB索引管理(多列索引)

(1)创建测试数据

(2)添加唯一索引

db.orders.createIndex({"onumber":1},{unique:true});

(3)查看索引

db.orders.getIndexes()

(4)获取索引大小(包含全文和唯一索引)

db.orders.totalIndexSize()

(5)索引扫描

db.orders.find({"onumber":"0000000000001019"}).explain("executionStats")

(6)创建doc表并查询索引

(7)删除后变成全表扫描

(7)删除orders表全文索引查看大小

(8)已命中

(9)删除索引

> db.orders.dropIndexes("onumber_1")> db.orders.getIndexes()

5.MongoDB索引管理(ttl索引)

(1)在文档创建10秒后删除文档

(2)插入显示已被删除

(3)删除索引

(4)新建索引

(5)都已删除

三、问题

1.查询执行情况报错

(1)问题

(2)语法错误

语法错误修改命令

(3)解决方法

修改命令

2.创建索引失败

(1)问题

(2)原因分析

语法错误

(3)解决方法

修改命令

3.find查询报错

(1)报错

(2)原因分析

语法错误

(3)解决方法

修改命令

http://www.dinnco.com/news/60262.html

相关文章:

  • 电商运营怎么学关键字优化用什么系统
  • 微网站开发提供的服务百度seo营销推广多少钱
  • 商丘做网站手机导航下载2022新版
  • 网站建设优化是什么鬼南昌seo管理
  • 怎样做加入购物车的网站网页模板之家
  • 江苏省建设工程招标网站收录网站排名
  • 手机网站专题页seo营销技巧培训班
  • 企业门户是什么武汉seo关键字优化
  • 日本做僾网站昆明优化网站公司
  • 怎么看国外设计网站如何让自己网站排名提高
  • 重庆公司做网站江苏网站seo营销模板
  • 网站制作 搜索竞价广告点击软件
  • 中山技术支持中山网站建设发布外链的平台有哪些
  • 中国建设网站齐齐哈尔市什么软件比百度搜索好
  • 网站开发合同下载百度号码认证
  • 如何做网站模板长沙正规seo优化价格
  • 餐饮企业网站源码百度关键词搜索趋势
  • 网站的网页声明怎么做百度百度一下你就知道
  • 重庆平台网站建设找哪家新闻稿件
  • 招聘网站开发时间关键词优化计划
  • 手机建网站优帮云本周的新闻大事10条
  • 电商网站如何做优化关键词指数
  • 政府网站哪里做的最好东莞百度推广优化公司
  • 做游戏推广网站滕州百度推广
  • wordpress 压缩网站太原网站制作优化seo
  • 哪家外贸网站做的好seo优化的网站
  • 网站快照前显示中文怎么做的优化seo是什么意思
  • 南昌网站排名拼多多关键词排名在哪里看
  • 中国it外包公司排名seo关键词优化排名
  • 网站建设待遇怎样网页设计收费标准