首页 > 数据库技术 > 详细

Mongodb数据库

时间:2019-10-15 12:56:04      阅读:62      评论:0      收藏:0      [点我收藏+]

数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据库技术得到了更加快速的发展,应用得更加广泛。主要用它进行管理各种系统的数据,作为科学研究和决策的重要技术手段。

关系型数据库(sql):Access  mySql SqlServer oracle  db2等。

        数据库>表>行

非关系型数据库( NoSql ): MongoDB,RedisHBase,CouchDB等。

        数据库>集合>文档       

文档型数据这个名字中,“文档”两个字很容易误解。其实这个文档就是 bson 。bson 是 json 的超集,比如 json中没法储存二进制类型,而 bson 拓展了类型,提供了二进制支持。mongodb 中存储的一条条记录都可以用 bson来表示。所以你也可以认为,mongodb 是个存 bson 数据的数据库。

NoSQL简介

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

 

管理员身份运行cmd:mongo进入mongodb的shell,输入exit或ctrl+c可以退出

>net    start    mongodb    启动mongodb服务
>mongo    测试连接
>net    stop    mongodb    关闭服务进程
>help    查看帮助
>show    dbs    显示数据库列表 
>use    dbname(数据库名)    创建数据库,若数据库存在则切换到该数据库
>show    collections    显示数据库中的集合

增加数据

db.webs(集合名,相对于表名).save({name:"张三"})    创建名为webs的集合(相当于表),并新增一条{name:"张三"}数据
db.webs.insert({name:"张三",age:"18"})    在webs集合中插入一条数据,若没有webs这个集合,mongodb会自动创建

save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容

_id是主键,主键是每条数据的唯一标识,不能重复,就像身份证是每个人唯一的编号一样。

存在数据:{ _id : ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老李"} ,_id是主键

db.webs.insert({ _id : ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老王 " })    会提示错误

db.webs.save(ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老王 " })     会把 “老李” 改为 “ 老王” ,有update的作用

 

删除数据

db.webs.remove({ })    删除(清空)webs集合中所有数据
db.webs.remove{(name:"张三")}    删除webs集合中name="张三"的数据
db.webs.drop()或db.runCommand({"drop":"webs"})    删除集合webs
db.runCommand({"dropDatab":1})    删除当前数据库,1不需要引号

查找数据

db.webs.find()    查找webs集合中所有数据
db.webs.findOne()    查找webs集合中的第一条数据
db.webs.find().pretty()     格式化查询到的数据
db.webs.find({key:"value"})    查找key=value的数据
db.web.find({key:{$gt:value}})    查找key大于value的数据
db.webs.find({key:{$lt:value}})    查找key小于value的数据
db.webs.find({key:{$gte:value}})    查找key大于等于value的数据
db.webs.find({key:{$lte:value}})    查找key小于等于value的数据

db.webs.find({ "key" : { $gt: value1 , $lt: value2 } })   查找value1 < key <value2的数据

db.webs.find({ "key" : { $ne: value } })    查找key不等于 value的数据

db.webs.find({key:{$mod:[10,1]}})    查找key的value模除10余数为1的数据

db.webs.find({key:{$in:[1,2,3]}})    查找key的value等于1,2,3的数据

db.webs.find({key:{$nin:[1,2,3]}})    查找key的value不等于1,2,3的数据

db.webs.find({key:{$size3}})    查找key的value的数量个数为3的数据(值必须是数组)

db.webs.find({key:{$exists:true|false}})    查找key字段存在的数据,true:存在,false:不存在

db.webs.find({$or:[{key1:value1},{key2:value2}]})    查找符合两个条件之一的所有数据

db.webs.find({"key.subkey":value})    查找key字段中属性为subkey的值为value的数据,内嵌对象中的值匹配

db.webs.find().sort({key:-1,key2:1})    1表示升序,-1表示降序

db.collection.find().limit(5)    控制返回结果数量,如果参数是0,则没有约束,limit()将不起作用

db.collection.find().skip(5)    控制返回结果跳过多少数量,如果参数是0,则当作没有约束,skip()将不起作用,或者说跳过了0条

db.collection.find().skip(5).limit(5)    可用来做分页,跳过5条数据再取5条数据

db.collection.find().count()    count()返回结果集的条数

db.collection.find().skip(5).limit(5).count(true)    在加入skip()limit()这两个操作时,要获得实际返回的结果数,需要一个参数true,否则返回的是符合查询条件的结果总数

db.collection.find({"name":/ab/})    模糊查询:

修改数据

db.webs.update({name:"张三"},{$set:{sex:"man"}},true,true)    修改name="张三"的sex为man的数据

第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据

 
 
 
 

 

 

 
 

 

 

Mongodb数据库

原文:https://www.cnblogs.com/hjw123/p/11676495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!