monogdb 使用简要说明

启动服务:

mongod.exe --dbpath D:\data\db
#后面为数据库路径,db是默认数据库,存在data中,可以自己新建。

进入MongoDB后台shell

mongo

显示数据库列表

show dbs

连接到一个指定数据库,也相当于新建

use zhang
#后面的zhang是数据库名字,可以通过show dbs获得,如果zhang不存在,则会新建zhang,并且当你对zhang插入数据的时候,show dbs中才会实现zhang这个数据库的名字

删除当前数据库

db.dropDatabase()

显示当前数据库名字

db

有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。

  • admin:从权限的角度来看,这是”root”数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

显示当前数据库的集合

show tables

删除当前数据的某个集合

db.mycol.drop()
#其中mycol是集合的名字,相当于关系型数据库中的表,结果返回truefalse

显示某个集合中的文档

db.collection.find(query, projection)
#query为查询条件可以不加
#projection也是可选的,以为可以设置某列显示或者不显示,1:显示,0:不显示如:
db.mycol.find({},{"title":1,_id:0}).limit(2)
#意思是查询所有文档,但是title列显示,_id列不显示
#也可以在后面加上pretty()来美化格式
db.mycol.find().pretty()

在当前数据库的某个集合中插入文档

db.mycol.insert({name:"zhangshuai",sex:"man"})
#在mycol集合中插入文档(即相当与关系型数据库中的行),如果mycol不存在则会新建


----------
#可以一次插入多条数据,如:
db.mycol.insert([{name:"zhangshuai",sex:"man"},{name:"lishuai",sex:"man"}])

----------
#也把数据存为一个变量,再插入变量:
document =({name:"zhangshuai",sex:"man"}) #返回结果 {name:"zhangshuai",sex:"man"}
db.mycol.insert(document)

更新集合的方法update()

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • collection:即你要更新的集合的名字
  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如 , <script type="math/tex" id="MathJax-Element-1">,</script>inc…)等,也可以理解为sql update查询内set后面的
  • upsert :可选,这个参数的意思是,当为true的时候,如果你更新的条件不存在相符的文档,则把当前更新条件作为一个新的文档插入,,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

例:

db.mycol.update({'name':'zhangshuai'},{$set:{'sex':'bugaosuni'}})
#意思是把集合中存在name字段值为zhangshuai的文档的sex字段改为bugaosuni,如果不存在sex字段则会在文档中添加这个字段。因为再更新语句中没有multi字段,则只会更新符合条件的一条。

删除文档remove()

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,默认是false
writeConcern :(可选)抛出异常的级别。

例:

db.col.remove({zhang:"yes"},{justOne:true})

如果你想某个集合删除所有文档,则可以:

db.col.remove({})

mongodb中的条件比较的方式

操作格式
等于{key:value}
小于{key:{$lt:value}}}
小于或等于{key:{$lte:value}}}
大于{key:{$gt:value}}}
大于或等于{key:{gte:value}}}
不等于{key:{$ne:value}}}

and条件

db.col.find({key1:value1, key2:value2}).pretty()

or条件

db.mycol.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

and和or联用

db.col.find({like:{$gte:40},$or:[{by:"张帅"},{by:"张三"}]}).pretty()

$type可以用来判断类型

db.col.find({"title" : {$type : 2}}) #2string,意思就是把title是string类型的查询出来

常见的编号:

类型代号
Double1
String2
Object3
Array4
binary data5
object id7
Boolean8
Date9
Null10

显示前num条数据limit()

db.mycol.find().limit(5)
#显示前5条

跳过前num条数据 skip()

db.mycol.find().skip(5#跳过前5行

skip()和limit()可以联合使用

db.mycol.find().skip(5).limit(5)
相当于查询第六行开始的5行数据

排序 sort()

db.mycol.find().sort({title:1})
#取1时代表的是升序排列,-1代表降序排列
#这句话意思是查询全部结果,并按title升序排列

注意:当sort,skip,limit同时使用的时候,无论排列顺序如何,执行顺序为sort,然后是skip,再然后limit

MongoDB索引 ensureIndex()
如果你在某个字段建立了索引,那么基于那个字段的条件查询就会很快。

db.mycol.ensureIndex({key:1},{})
#key为你要创建的索引字段,1代表升序创建,-1代表降序创建。
#第二个{}中可以添加一些参数,如unique:是否唯一,backgroud:是否会阻塞其他数据库操作,也就是说如果backgroud:true,会在后台建立索引。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值