[{"data":1,"prerenderedAt":64},["ShallowReactive",2],{"article-11":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":14,"is_recommend":14,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":25,"tags":28,"words":35,"read_time":36,"comments":14,"cover":37,"relevant":38},11,"《MongoDB权威指南》之MongoDB初探","数据库,MongoDB","MongoDB是一种强大、灵活、可扩展的数据存储方式。它扩展了关系型数据库的众多有用功能，如辅助索引、范围查询（range query）和排序。MongoDB的功能非常丰富，比如内置的对MapReduce式聚合支持，以及对地理空间索引的支持。",6,"基本概念\n\n文档是MongoDb中数据的基本单元。非常类似于关系数据库管理系统中的行（但是比行要复杂的多）\n\n类似低，集合可以被看做是没有模式的表\n\nMongoDb的单个实例可以容纳多个独立的数据库，每一个都有自己的集合和权限\n\nMongoDB自带简洁但功能强大的`JavaScript Shell`，这个工具对于管理MongoDB实例和操作数据作用非常大\n\n每一个文档都有一个特殊的建`_id`，它在文档所处的集合中是唯一的\n\n###### 1、文档\n\n文档的建是字符串。\n\n键不能含有\\0（空字符），这个字符用来表示键的结尾\n\n.和$有特别的意义，只有在特定环境下才能使用。\n\n以下划线‘_’开头的键是保留的。\n\nMongoDB不但区分类型，也区分大小写\n\n```bash\n类型：\n {'foo':3}\n {'foo': '3'}\n大小写：\n {'foo':3}\n {'FOO':3}\n```\n不能有重复的键\n\n如下文档是非法的：\n\n```bash\n{'a':'Hello', 'a':'Word'}\n```\n###### 2、集合\n\n集合就是一组文档，如果说MongoDB中的文档类似于关系型数据库中的行，那么集合就如同表\n\n2.1、无模式\n\n集合是无模式的，\n\n2.2、命名\n\n``` bash\n集合名不能是空字符串''。\n集合名不能含有\\0（空字符）\n集合名不能以‘system.’开头，装饰为系统集合保留的前缀\n用户创建的集合名不能含有保留字符$\n```\n2.3、数据库\n\n```bash\n多个集合组成数据库\n数据库名命名规则：\n不能是空字符串（''）\n不能含有''（空格）、.、$、\u002F、\\和\\0.\n应全部小写\n最多64字节\n```\n 2.4、启动mongodb\n\nWindows下启动：\n\n```bash\n$ mongod.exe\n```\n2.5 MongoDB Shell\n\n2.5.1、运行shell\n\n```bash\n$.\u002Fmongo\n```\nshell可以利用javaScript标准库\n\n可以定义调用javaScript函数\n\n2.5.3、shell中的基本操作\n\n4个基本操作：创建、读取、更新和删除（CRUD）\n\n1、创建\n\ninsert 函数添加一个文档到集合里面\n\n```bash\npost = {\n    title:'test',\n    content:'test context',\n    date:new Date()\n}\ndb.blog.insert(post)\n```\n2、读取\n\n```bash\ndb.blog.find()返回所有的文档\ndb.blog.findOne()查看一个文档\n```\n3、更新\n\nupdate 接收（至少）两个参数\n\n第一个是要更新文档的限定条件，\n\n第二个是新的文档\n\n```bash\npost.comments = []\ndb.blog.update({title:222}, post)\n```\n4、删除\n\nremove用来从数据库中永久的删除文档\n\n```bash\nbd.blog.remove({title:'test'})\n```\n2.6、数据类型\n\n2.6.1、基本数据类型\n\na、null\n\n用于表示空值或者不存在的字段\n\n```bash\n{'x':null}\n```\nb、布尔\n\n布尔类型有两个值'true'和'false'：\n\n```bash\n{'x':true}\n```\nc、32位整数\n\nshell中不可用， javaScript仅支持64位浮点数， 所以32位整数会被自动转换\n\nd、64位整数\n\nshell也不支持该类型。shell会使用一个特殊的内嵌文档来显示64位整数\n\ne、64位浮点数\n\nshell中的数字都是这个类型\n\n```bash\n{'X':3.15}\n{'X':3}\n```\n都是浮点数\n\nf、字符串\n\nutf-8字符串都可表示为字符串类型的数据：\n\n```bash\n{'x':'foobar'}\n```\ng、符号：\n\nshell不支持该类型，shell将数据库里面的符号类型转成字符串\n\nh、对象id：\n\n对象id是文档的唯一id\n\n```bash\n{'x':objectId()}\n```\ni、日期:\n\n日期类型存储的是从标准纪元开始的毫秒数。不存储时区：\n\n```bash\n{'x':new Date()}\n```\nj、正则表达式：\n\n文档中可以包含正则表达式，采用javaScript的正则表达式语法\n\n```bash\n{'x':\u002Ffoovar\u002Fi}\n```\n k、代码：\n\n文档中还可以包含javaScript代码：\n\n```bash\n{'X':function(){\u002F*....*\u002F}}\n```\nl、二进制数据：\n\n二进制数据可以由任意字节的串组成，不过shell中无法使用\n\nm、最大值：\n\nBSON包含一个特殊类型。表示可能的最大值，shell中没有这个类型\n\nn、最小值：\n\nBSON包含一个特殊类型，表示可能的最下值，shell中没有这个类型\n\no、未定义：\n\n文档中也可以使用未定义类型（javaScript中的null和undefined是不同的类型）\n\n```bash\n{'x':undefined}\n```\n  p、数组：\n\n值的集合或者列表可以表示成数组\n\n```bash\n{'x':['a','b','c']}\n```\nq、内嵌文档：\n\n文档可以包含别的文档，也可以作为值嵌入到父文档中\n\n```bash\n{'x':{'foo':'bar'}}\n```\n该内容由阅读《MongoDB权威指南》整理。\n",null,0,462,"",1,"2019-01-17 22:19:53","2026-04-19 10:49:41",127,"Mysql",{"id":23,"title":24},10,"Python基础整理之if、while、for",{"id":26,"title":27},12,"PHP防止sql注入，XSS攻击简单方法",[29,32],{"id":30,"name":31},28,"数据库",{"id":33,"name":34},29,"MongoDB",1579,3,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002Fde\u002F36593248f37397d88a6a0d873ebaad.jpg",[39,44,49,54,59],{"id":40,"title":41,"create_time":42,"description":43},90,"Redis常见使用场景","2020-06-17 16:09:42","Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。本篇文章，主要介绍利用PHP使用Redis，主要的应用场景。",{"id":45,"title":46,"create_time":47,"description":48},94,"客户端连接MySQL8提示 caching-sha2-password 问题","2020-10-19 10:55:26","在安装mysql8的时候如果选择了密码加密，之后用客户端连接比如navicate，会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件，可以通过如下方式进行修改：",{"id":50,"title":51,"create_time":52,"description":53},87,"MySQL中InnoDB和MyISAM区别","2020-06-12 17:11:21","InnoDB具有事务，支持4个事务隔离级别，回滚，崩溃修复能力和多版本并发的事务安全，包括ACID.如果应用中需要执行大量的INSERT或UPDATE操作，则应该使用InnoDB,这样可以提高多用户并发操作的性能。MyISAM管理非事务表，提供高速存储和检索，以及全文搜索能力，如果应用中需要执行大量的SELECT查询，那么MyISAM是更好的选择。",{"id":55,"title":56,"create_time":57,"description":58},88,"MySQL实现循环插入千万级数据","2020-06-12 17:56:22","对于一些数据量较大的系统，数据库面临的问题除了查询效率低下，还有就是数据入库时间长。特别像报表系统，可能每天花费在数据导入上的时间就会长达几个小时之久。因此，优化数据库插入性能是很有意义的。",{"id":60,"title":61,"create_time":62,"description":63},86,"MySQL查询表结构命令","2020-06-09 11:30:00","###### MySQL查询表结构命令\n\n###### 1、查询表结构\n\n主要显示字段类型主键是否允许为空等\n\n```mysql\nDESC 表名;\n```\n\n结果显示\n\n| Field | Type         | Null | Key  | Default | Extra          |\n| :---- | ------------ | ---- | ---- | ------- | -------------- |\n| id    | int(11)      | NO   | P",1783431672346]