做网站的公司主要工作是什么,吉林省建设信息网官网入口,网页设计作业成品代码和文字,网站被别的域名绑定一、MongoDB简介 1. mangodb是一种基于分布式、文件存储的非关系型数据库 2. C写的#xff0c;性能高 3. 为web应用提供可扩展的高性能数据存储解决方案 4. 所支持的格式是json格式 二、MongoDB三元素和关系型数据库的区别 三元素#xff1a;数据库 集合(类…一、MongoDB简介 1. mangodb是一种基于分布式、文件存储的非关系型数据库 2. C写的性能高 3. 为web应用提供可扩展的高性能数据存储解决方案 4. 所支持的格式是json格式 二、MongoDB三元素和关系型数据库的区别 三元素数据库 集合(类似关系型数据库的表) 文档(类似关系型数据库中的行) 文档就是一个对象由键值对构成{name:zhangsan,age:33} 集合类似于数据库中的表储存多个文档结构不固定 {name:zhangsan,age:33} {name:zhangsan,age:33} {book:python,price:33} 数据库:是一个集合的物理容器一个数据库可以包含多个文档 SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins 表连接,MongoDB不支持primary keyprimary key主键,MongoDB自动将_id字段设置为主键三、MongoDB自带的数据库 admin: 从权限的角度来看这是root数据库。要是将一个用户添加到这个数据库这个用户自动继承所有数据库的权限。 local: 这个数据永远不会被复制可以用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时config数据库在内部使用用于保存分片的相关信息。 test:MongoDB的默认数据库是test。 如果没有创建任何数据库那么集合将被保存在测试数据库。 四、MongoDB数据库命令 mongod 开启服务器 mongo 开启客户端 show dbs 显示所有数据库列表 db 显示当前数据库对象/集合 use 连接到一个指定的数据库;如果数据库不存在会被创建。 db.dropDatabase() 删除选定的数据库 注意show dbs要显示数据库需要插入一个文档进去。 五、集合(表)的创建 MongoDB中使用db.createCollection(name,option)用来创建集合 name 是要创建集合的名称。 option 用于指定集合的配置,(可选)指定有关内存大小和索引选项 db.createCollection(myconllection) 创建集合 show collections 检查创建的集合 db.COLLECTION_NAME.drop() 删除集合 db.myconllection.drop() 在MongoDB中可以不创建集合当插入一些文档的时候MongoDB会自动创建集合。 六、文档(一行记录) 文档是一组键值对。MongoDB不需要设置相同的字段并且相同的字段不需要相同的数据类型这与关系型数据库有很大区别也是MongoDB的特点。 文档中的键/值对是有序的。 文档中的值不仅可以是在双引号里面的字符串还可以是其他几种数据类型甚至可以是整个嵌入的文档)。 MongoDB区分类型和大小写。 MongoDB的文档不能有重复的键。 文档的键是字符串。除了少数例外情况键可以使用任意UTF-8字符。 七、MongoDB中的数据类型 数据类型描述String字符串。存储数据常用的数据类型。在 MongoDB 中UTF-8 编码的字符串才是合法的。Integer整型数值。用于存储数值。根据你所采用的服务器可分为 32 位或 64 位。Boolean布尔值。用于存储布尔值真/假。Double双精度浮点值。用于存储浮点值。Min/Max keys将一个值与 BSON二进制的 JSON元素的最低值和最高值相对比。Array用于将数组或列表或多个值存储为一个键。Timestamp时间戳。记录文档修改或添加的具体时间。Object用于内嵌文档。Null用于创建空值。Symbol符号。该数据类型基本上等同于字符串类型但不同的是它一般用于采用特殊符号类型的语言。Date日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间创建 Date 对象传入年月日信息。Object ID对象 ID。用于创建文档的 ID。Binary Data二进制数据。用于存储二进制数据。Code代码类型。用于在文档中存储 JavaScript 代码。Regular expression正则表达式类型。用于存储正则表达式。八、文档的插入 MongoDB中使用insert()和save()方法向集合中插入文档语法如下 db.collection_name.insert()db.mycol.insert({_id: 1,title: MongoDB Overview,description: MongoDB is no sql database,by: weiheng,url: http://www.weiheng.site,tags: [mongodb, database, NoSQL],likes: 1,}) 如果不指定_id参数那么 MongoDB 会为此文档分配一个唯一的ObjectId。 ObjectId的生成规则:_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer) 要在集合中插入多个文档可以在insert()命令中传递文档数组 db.mycollection.insert([{_id:2,title:MongoDB Overview,descrption:MongoDB is no sql database,by:weiheng,url:http://www.weiheng.site,likes:1,},{_id:3,title:MongoDB Overview,descrption:MongoDB is no sql database,by:weiheng,url:http://www.weiheng.site,likes:1,},]) db.collection_name.insertOne() 将单个文档插入集合中,该方法返回包含新插入文档的_id. db.inventory.insertOne({item: canvas,qty: 100,tags: [cotton],size: { h: 28, w: 35.5, uom: cm}}
) 返回结果 db.inventory.insertOne(... { item: canvas, qty: 100, tags: [cotton], size: { h: 28, w: 35.5, uom: cm } }... ){acknowledged : true,insertedId : ObjectId(5955220846be576f199feb55)} db.collection_name.insertMany() 方法将多个文档插入到集合中可将一系列文档传递给它。insertMany()返回包含新插入的文档_id字段值的文档。 db.inventory.insertMany([{ item: journal, qty: 25, tags: [blank, red], size: { h: 14, w: 21, uom: cm } },{ item: mat, qty: 85, tags: [gray], size: { h: 27.9, w: 35.5, uom: cm } },{ item: mousepad, qty: 25, tags: [gel, blue], size: { h: 19, w: 22.85, uom: cm } }]) 返回结果 db.inventory.insertMany([ ... { item: journal, qty: 25, tags: [blank, red], size: { h: 14, w: 21, uom: cm } }, ... { item: mat, qty: 85, tags: [gray], size: { h: 27.9, w: 35.5, uom: cm } }, ... { item: mousepad, qty: 25, tags: [gel, blue], size: { h: 19, w: 22.85, uom: cm } } ... ]) { acknowledged : true, insertedIds : [ ObjectId(59552c1c46be576f199feb56), ObjectId(59552c1c46be576f199feb57), ObjectId(59552c1c46be576f199feb58) ] } 九、MongoDB文档的查询 要从MongoDB集合中查询数据,需要使用MongoDB的find()方法 find()命令基本语法: db.collection_name.find(document) find()会以非结构化的方式显示所有文档内容: { _id : ObjectId(5b5eb4d81cec3f1204a88699), id : 1, title : MongoDB Overview, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 }{ _id : 2, title : MongoDB Overview, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 }{ _id : 3, title : MongoDB Overview, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 }{ _id : 4, title : MongoDB Overview, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 } pretty():格式化数据并显示结果 db.collection_name.find().pretty(){_id : ObjectId(5b5eb4d81cec3f1204a88699),id : 1,title : MongoDB Overview,descrption : MongoDB is no sql database,by : weiheng,url : http://www.weiheng.site,likes : 1} 除了find()还有findOne()它只会返回一个文档默认返回第一个 findOne()语法 db.collenction_name.findOne() 十、条件操作比较运算符 操作 语法 示例 RDBMS等效语句
相等 {key:value} db.mycol.find({by:weiheng}).pretty() where by weiheng
小于 {key:{$lt:value}} db.mycol.find({likes:{$lt:50}}).pretty() where likes 50
小于等于 {key:{$lte:value}} db.mycol.find({likes:{$lte:50}}).pretty() where likes 50
大于 {key:{$gt:value}} db.mycol.find({likes:{$gt:50}}).pretty() where likes 50
大于等于 {key:{$gte:value}} db.mycol.find({likes:{$gte:50}}).pretty() where likes 50
不等于 {key:{$ne:value}} db.mycol.find({likes:{$ne:50}}).pretty() where likes ! 50 (1) 在find()中如果将条件以,分割则MongoDB将其视为AND操作 db.mycol.find({$and: [{key1: value1}, {key2:value2}]})# by为weiheng,title为MongoDB Overview的文章db.mycollection.findOne({$and:[{by:weiheng},{title:MongoDB Overview}]}) (2) MongoDB中的OR操作符。基本语法和AND相同 db.mycol.find({$or: [{key1: value1}, {key2:value2}]})db.mycollection.findOne({$or:[{by:weiheng},{title:MongoDB Overview}]}) (3) AND和OR db.mycol.find({key:value,$or: [{key1: value1}, {key2:value2}]}) 十一、update()更新操作 MongoDB中使用Update将集合中的文档进行更新update()方法更新现有文档中的值而save()方法使用save()方法中传递的文档数据替换现有文档。 update语法 db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA) 示例修改id为1的title // 查看id:1的信息
db.mycollection.find({id:1}){ _id : ObjectId(5b5eb4d81cec3f1204a88699), id : 1, title : MongoDB Overview, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 }// 修改一下title为MongoDBdb.mycollection.update({id:1},{$set:{title:MongoDB}})
// 再次查询
db.mycollection.find({id:1}){ _id : ObjectId(5b5eb4d81cec3f1204a88699), id : 1, title : MongoDB, descrption : MongoDB is no sql database, by : weiheng, url : http://www.weiheng.site, likes : 1 } 十二、remove() deleteOne() deleteMany() 删除操作 MongoDB中的 remove()方法用于从集合中删除文档。官方不推荐使用remove(),推荐deleteOne和deleteMany() remove()方法的基本语法如下: db.COLLECTION_NAME.remove(DELLETION_CRITTERIA) 示例: 删除id为1的数据 // 以下示例将删除_id为“100”的文档。
db.mycollection.remove({id:1}) 官方推荐使用 deleteOne() 和 deleteMany() 方法 db.inventory.deleteMany({title: MongoDB })
db.inventory.deleteOne({title: MongoDB }) 转载于:https://www.cnblogs.com/weihengblog/p/9392276.html