MongoDB操作数据库

        MongoDB是以文档为单位进行存储的,所以对数据的操作也是针对文档进行的,和关系型数据库一样,包括创建数据库,创建文档,对文档进行删除、修改、查询等。MongoDB的增删改,是以bson格式数据进行的,BSON是一种类似于JSON的二进制形式存储形式。

 

名词对比

 

        database:database:在关系型数据库和MongoDB数据库中,database都代表数据库

        table:collection:关系型数据库的表,在MongoDB中称为集合

        row:document:关系型数据库表中的行,是MongoDB中的文档

        column:field:在关系型数据库中,有每一列之称,但在MongoDB中则是域的概念

        index:index:两者都称为索引

        primary key:primary key:关系型数据库中的主键需要创建,在MongoDB中自动将_id字段设置为主键

 

        关系型数据库中的表与表之间有各种表关系,但是在MongoDB中是没有的,各个collection相互独立,是无法联合做数据操作的。

 

数据操作

 

启动MongoDB

 

        在操作数据前,应该先启动MongoDB。首先使用命令启动MongoDB服务端,mongod --dbpath E:\MongoDB\db-data,启动并制定数据库的位置,当显示等待连接到27017端口即为启动成功,默认是27017端口;再启动MongoDB的客户端,mongo 127.0.0.1:27017/admin,采用的是admin登录,登录成功后即可进行下面数据操作的命令。

 

创建数据库

 

                                                                             

    

        首先是执行show dbs命令查看当前有哪些数据库,我这里只有local一个,是MongoDB自带的;然后执行use dbTest命令切换到数据库dbTest,但是此时数据库还没有创建,所以再次执行show dbs的时候还是只有local库;切换数据库后需要对数据进行操作才会保存,否则MongoDB默认不保存,接下来执行一个插入命令,db.collectionTest.insert({name:"fiala"}),意思是创建一个名字为collectionTest的collection,插入的数据是name为fiala,一定要注意括号和花括号,因为在执行命令时两个括号并不明显;接下来再次执行show dbs就可以看到刚才新创建的数据库了。

 

查询数据库

 

        db:该命令是查询当前所使用的数据库

        show dbs:该命令是查询所有的数据库

 

删除数据库

 

        如果要删除数据库dbTest,应该先use dbTest设置为当前数据库,然后执行db.dropDatabase()命令来删除数据库。

 

添加文档

 

                                 

 

   如果要简单的添加一个field,可以利用创建数据库时添加命令:db.collectionTest.insert({name:"fiala"})。如果要添加整个文档,可以像上图所示,先将文档写好,然后执行db.collectionTest.insert(document)命令,collectionTest是要添加到collection的名字。要注意,写document时外层是(),内层是{},在图片上不明显。除了insert方法,还可以使用save方法,执行db.collectionTest.save(document)命令,使用save方法时,如果有_id就更新_id所标识的数据,如果没有则会生成_id。

 

查询文档

 

 

   查询文档的命令就是db.collectionTest.find()/db.collectionTest.find().pretty(),前一个只是查询出collection中的文档,加pretty()方法可以美化查出的文档显示。当然查询也可以写条件,例如上图的第三条命令,查询的就是name=fiala的文档,条件的查询格式:db.collection.find({"key":"value","key":"value"}),这样查询可以使用and的方式查询出两个key对应value的文档。如果要使用or条件,使用该命令:db.collection.find({$or:[{"key":"value"},{"key":"value"}]})。

 

   在查询命令中,不等于号是不能直接使用的,需要用置换符进行替换,如下:

      $gt:大于,>

      $lt:小于,<

      $gte:大于等于,>=

      $lte:小于等于,<=

   命令为:db.collectionTest.find({"age":{$gt:20}}).pretty()。

 

   另外还可以限制查询条数,如下所示:

      db.COLLECTION_NAME.find().limit(NUMBER):查询NUMBER条数据

      db.COLLECTION_NAME.find().limit(NUMBER1).skip(NUMBER2):跳过NUMBER2条数据来查询NUMBER1条数据

 

更新文档

 

                  

 

db.collection.update(    
	<query>, //update的查询条件,根据该条件查询出要更新的文档
	<update>, //需要update的域,以及一些更新的操作符
	{       
		upsert: <boolean>,//可选,如果不存在update的记录,是否插入要插入的数据,true为插入,默认是false不插入
		multi: <boolean>, //可选,默认为false,只更新查出来的第一个文档,如果为false,则更新查询出来的所有数据
		writeConcern: <document>//可选,抛出异常的级别
	}
)

 

 

       update方法的使用格式如上面代码所示,每个参数的含义如后面标识所示。如上面图片,根据name=Yasmine查出文档,并使用$set命令将age更新为21,再次查询则会显示最新的数据。

             
 

删除文档

 

                      

 

db.collection.remove(     
	<query>, //可选,删除的文档的条件,根据query的条件查出要删除的文档
	{       
		justOne: <boolean>,//可选,如果设置为true或1,则只删除一个文档
		writeConcern: <document> //可选,抛出的异常级别
	} 
)

 

 

总结

 

        参考MongoDB的官网做的实验,如果有什么差错,还望过路的大神指点,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值