Mondodb
Posted domino-king
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mondodb相关的知识,希望对你有一定的参考价值。
工作原因需要使用mongodb数据库,学习一下!!!
mongodb是一个文档型的数据库,适合做日志储存之类的
文档document:是mongodb中数据的基本单元,说白了就是一个类似BSON格式存储的,而且每一个文档的大小不能超过16M
集合collection:集合就是一组文档,多个文档组成一个集合,相当于mysql中的表
其中集合分为无模式和模式自由:无模式就是同一集合中可以包含不同格式的文档
模式自由就是集合里没有行和列的概念
数据库database:多个集合组成数据库,而且他们之间完全独立,并且无需创建,也就是说Mongodb他不支持连表查询,不能存储复杂的数据
以window为例:
安装:以管理员权限运行cmd,进入到mongodb目录下的bin目录下 ,使用
mongod --install --dbpath 数据库文件路径(data目录) --logpath 日志文件路径
然后去开启服务即可,然后在通过bin目录下的mongo 进入到mondodb的客户端就可以操作mongodb了
语句:
use 数据库名 //选择或创建数据库,数据库存在就会创建数据库
show dbs //查询创建的数据库
db.users.insert({数据}) //创建集合,users就是集合,相当与Mysql中的表
show tables //查看数据库里面的集合
db.集合名.find() //查询集合里面的文档
db.集合名.insert() //往集合里面插入文档
db.集合名.drop() //删除数据库里面的集合
db.dropDatabase() //删除数据库
增删改查操作
添加文档
db.集合名.insert({文档数据}) ,也可以使用js代码批量添加文档,每个文档会自动创建id值
删除文档
db.集合名.remove({json条件}) //如果不写条件会删除集合中所有的文档
还有一些操作符,$lt,$lte,$gt,$gte (<,<=,>,>=),$n(<>),$in,$nin,$or,$not,$mod(),$exits,$where等等,不能用符号,只能用$lt形式的条件去操作
删除集合中name等与fangxiun的文档
修改文档
db.users.update({条件},{新文档}) //把name为xiaoming的文档修改为name等与king的文档
修改器:$inc 加一个数字
$set 修改某一个字段,如果该字段不存在就添加
把abc的年龄加2
db.users.update({\'name\':"abc\'},{"$inc":{\'age\':2}})
或者修改电话,把abc的电话修改成123456
db.users.update({\'name\':"abc\'},{"$set":{\'tel\':123456}})
查询操作
db.集合名.find({条件}) //如果不添加条件就查询所有的数据‘
比如查询age大于5的文档
db.集合名.find({},{\'age\':{\'$gt\':5}})等等
按age升序排序
db.集合名,find().sort({age:1}); -1 就是降序排列
查看文档里面的个数
db.集合名.count() 或者db.集合名.find().count();
以上是关于Mondodb的主要内容,如果未能解决你的问题,请参考以下文章
Heroku部署后Django(djongo)无法连接到MondoDB Atlas
MongoDB+C#+IQueryable - 有一个字符串数组以及如何在 Where 子句中将其加入 Mongos 集合