MongoDB的基本操作

一、打开MongoDB数据库服务:

      参照http://my.oschina.net/u/241255/blog/194164 博客来打开MongoDB服务。当然如果你将MongoDB加入到windows service中的话,那就可以直接到window服务中启动和关闭MongoDB服务。我还是比较喜欢在命令行中启动。嘿嘿!

二、连接MongoDB shell

     再打开一个命令行工具(不要关闭原来的那个,不然就会将MongoDB服务停止),输入如下命令:   

mongo

备注:我将MongoDB的命令都加入到了Path路径,所以可以随处运行MongoDB命令,如果你还未加入,那么请到mongodb的bin目录下运行该命令。

1、mongodb默认连接的是test数据库,连接上以后就可以进行数据库操作了,这里稍后在讲MongoDB的基础操作。

2、当然,如果你想切换到别的数据库时,可以使用下面的操作:

use newDB

MongoDB的基本操作_第1张图片

连接到newDB数据库上,如果该数据库存在,则直接连接,不存在就会创建一个新的数据库,并连接上。

三、数据库的基本操作

1、insert操作

数据库现在我们已经创建了,那么我们需要创建一个集合,这个相当于关系型数据库中表的概念啦。创建一个user集合,当然我们不需要像关系型数据库那样,先创建表才能向里面insert数据。我们只要做如下操作:

db.user.insert({"username":"test","age":12,"sex":"m"})
db.user.insert({"work":"good"})

这样就创建了一个user集合,并向里面插入了数据。

使用变量来插入数据:

MongoDB的基本操作_第2张图片


2、find操作(查找数据):

数据库中现在已经有数据了,我们非常想知道里面存了些什么:

db.user.find()

我们看到这里面添加了一个”_id",这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性。

(1)在实际的应用中,我们往往会使用二元查询,比如:

  •  >, >=, <, <=, !=, =

  • And,OR,In,NotIn

    在mongodb中都已将这些二元操作进行基本的封装:

 <1>"$gt", "$gte", "$lt", "$lte", "$ne", "没有特殊关键字"

/* find age>18 */
db.user.find({"age":{$gt:18}

/* find age<18*/
db.user.find({"age":{$lt:18}

/* find age != 18 */
db.user.find({"age":{$ne:18}

/* find age == 18 */
db.user.find({"age":18}

<2> "无关键字“, "$or", "$in","$nin"

/* find name==hanmeimei province==guangdong */ 
db.user.find({"name":"hanmeimei","address.province":"guangdong"})

/* find name==hanmeimei or province == guangdong */
db.user.find({$or:[{"name":"hanmemei"},{"address.province":"guangdong"}]})

/* find province in (guangdong anwei) */ 
db.user.find({"address.province":{$in:["guangdong","anwei"]}})

/* find province not in (guangdong anwei) */
db.user.find({"address.province":{$nin:["guangdong","anwei"]}})

<3> 在mongodb中还有一个特殊的匹配,那就是“正则表达式”

/* find name startWith h and endwith i*/
db.user.find({"name":/^h/,"name":/i$/})

<4> 有时查询很复杂,很蛋疼,不过没关系,我们可以使用mongodb提供的$where

db.user.find({$where:function(){ return this.name == 'hanmeimei'}})

3、update操作:

db.user.update({"username":"test"},{"age":25,"sex":"w"})

更新username为test的记录。

我们会发现username为test的用户不见了,因为这里是整体更新,所以只将更新的字段保存下来,稍微我们会介绍局部更新。

(2)局部更新:

  1. $inc修改器

 $inc也就是increase的缩写,学过sql server 的同学应该很熟悉,比如我们做一个在线用户状态记录,每次修改会在原有的基础上自增$inc指定的值,如果“文档”中没有此key,则会创建key,

db.user.update({"name":"hanmeimei"},{$inc:{"age":25}})

MongoDB的基本操作_第3张图片

2)$set修改器

db.user.update({"name":"hanmeimei"},{$set:{"age":25}})

MongoDB的基本操作_第4张图片

3)upsert操作

 这个可是mongodb创造出来的“词”,大家还记得update方法的第一次参数是“查询条件”吗?,那么这个upsert操作就是说:如果我

没有查到,我就在数据库里面新增一条,其实这样也有好处,就是避免了我在数据库里面判断是update还是add操作,使用起来很简单

将update的第三个参数设为true即可。

MongoDB的基本操作_第5张图片

4)批量更新

     在mongodb中如果匹配多条,默认的情况下只更新第一条,那么如果我们有需求必须批量更新,那么在mongodb中实现也是很简单

的,在update的第四个参数中设为true即可。

4、remove操作:

db.user.remove()

remove(),不带参数表示删除这个集合的全部记录。要慎用!



你可能感兴趣的:(MongoDB的基本操作)