初识MongoDB小结
一、Mongodb介绍
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。比较适合存储大量的没有规则,无序的数据。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。 MongoDB里存储数据的格式文档形式,以bson格式的文档形式。
二、简单操作
2.1创建一个数据库使用
通过use语法切换数据库,如果数据库不存在,就会自动创建它。
2.2添加数据
mongodb里存储数据的格式文档形式,以bson格式的文档形式。

语法:
db.集合名称.insert(bson格式数据)
2.2.1普通数据添加
例:db.goods.insert({name:'huawei',price:3500,weight:140,number:35})
2.2.2多维数据添加
例:db.goods.insert({name:'iphone',price:5000,weight:150,number:45marea:{province:'beijing',city:'beijing'}})
2.2.3数组信息添加
例:db.goods.insert({name:'xiaomi',price:3000,weight:150,number:20,area:{province:'nanjing',city:'beijing'},color:['black','whtie','red']})
2.3查询数据
语法:
db.集合名称.find(查询条件)
findOne() 会取出符合结果的第一条信息,并且以格式化形式返回
2.3.1笼统方式查询
db.goods.find() 不进行条件限制,全部取出来
2.3.2条件限制查询
例:db.goods.find({name:'huawei'})
2.3.3范围条件查询
mysql < <= > >=
mongo $lt $lte $gt $gte
db.goods.find({price:{'$lte':1999}})
2.3.4多个条件查询
例:db.goods.find({price:{'$lte':1999},number:{'$gte':40}})
2.3.5多维字段查询
例:db.goods.find({'area.city':'beijing'})
注意:多维字段需要用引号包含起来
2.3.6数组条件查询
①查询满足其中之一即可显示
db.goods.find({color:'black'})
②满足查询条件所有的才可显示
db.goods.find({color:{'$all':['black','red']}})
2.3.7限制查询字段
语法:db.集合名称.find({查询条件},{筛选条件})
显示为1,不显示为0 要是1都是1,要是0都是0 _id除外
例:db.goods.find({color:{'$all':['black','red']}},{name:1,_id:0})
注:_id是mongodb数据库里的集合中,默认的主键id,具有索引内容,通过主键查询,会很快的查询速度。不要随意修改此值,使用默认即可。
2.3.8$or查询
满足其中之一的条件就可以显示,类似mysql的中的or条件语法
例:db.goods.find({'$or':[{price:{'$gt':5000}},{number:{'$gte':100}}]})
2.3.9count 语法
返回结果的数量统计
例:
db.goods.count()
db.goods.find({price:{'$gt':5000}}).count()
db.goods.count({price:{'$gt':5000}})
2.3.10limit语法 skip语法
类似于mysql中的limit(skip,length)语法
limit() 取几个
skip() 跳过几个
例:
db.goods.find().limit(1);
db.goods.find().skip(1).limit(1);
2.4修改数据
语法:db.集合名称.update({查询条件},{修改条件})
updateOne()
updateMany()
2.4.1有$set的修改
例:
db.goods.update({name:'iphonex'},{'$set':{price:8500}})
db.goods.updateOne({name:'xiaomi5'},{'$set':{price:1500}})
2.4.2没有$set的修改
没有$set关键字语法,把设置的字段进行修改,没有设置的就会被删除掉
例:
db.goods.update({name:'iphonex'},{price:8550})
2.5删除数据
语法: db.集合名称.remove({查询条件})
deleteOne()
deleteMany()
例:db.goods.remove({price:8550})
2.5.1删除字段
可以删除某个字段的操作,使用的是update语法的$unset
例:db.goods.update({name:'huawei01'},{'$unset':{weight:0}})

浙公网安备 33010602011771号