mongo第一天(mongo初体验)

一、Mac OS X上mango的安装

  1.打开终端窗口, 粘贴以下脚本,安装Homebrew:

      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. 在终端更新brew,打开命令行输入:

      brew update

  3.安装MongoDB:

      brew install mongodb

 

  4.创建/data/db目录:

      mkdir -p /data/db

 

   5.run mongodb:

    直接在命令行里输入:mongo,默认连接的时test数据库,如下图

    

二、基本操作

  1.查看当前被使用的数据库:

    show dbs        //查看当前被创建并使用的数据库

 

  

  2.insert ,在数据库里插入数据:

    有了数据库,下一步就是集合,这里就取集合名为“students”,文档为json的扩展(Bson)形式

    

 

  3.find ,查看集合里被写入的数据:

    db.students.find().pretty();        //美观地显示students目录下所有的数据

 

    

     "_id": 这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性

 

  4.update ,第一个参数为"查找的条件",第二个参数为"更新的值"

    db.students.update({"name":"xiaohua"},{"name":"xiaohua","age":30,"hobby":["swim","basketball","palygame"]})

 

    

 

  5.remove ,删除功能

    1)使用 remove() 函数移除数据

    db.students.remove( { "name" : "xiaoming" } )        //删除students集合下的name为xiaoming的数据

 

      

    

    2)删除集合中所有数据

    db.students.remove({})                    //删除students集合中的所有数据

 

    

 

    3)使用drop()删除集合

    db.students.drop()                        //删除整个students集合

 

    

    返回true代表删除成功

 

    4)使用dropDatabase()函数删除数据库

    db.dropDatabase()        //删除整个当前(test)数据库

 

        

  补充:便捷查询findOne()

  为了方便用户,mongo shell(以及一些其他的程序驱动)不必编写程序来处理查询指针,就能通过findOne()方法实现返回一个文档的功能。findOne()方法和find()方法的参数是一样的,但它不是返回一个指针,而是返回数据库中满足条件的第一个文档,或者在没有满足条件文档的情况下返回null。

  下面以查找满足"name=='mongo'"的第一个文档为例。有很多种方法可以实现,包括调用next()方法(在判断非空之后),或者将指针当成数组返回第一个位置上(下标为0)的元素。然而,相比之下findOne()是最简便的:

>printjson(db.things.findOne({name:"mongo"}))   
{
"_id" : ObjectId("4f361b1f64480e0bcb6d6021"), "name" : "mongo" }

 

   这是一种更有效的方法,因为用户只会收到从数据库返回的唯一一个对象,所以能大大减少数据库和网络的负荷。它和查询find({name:"mongo"}).limit(1)是等效的。

  下面是一个针对_id查询的例子:

  >var doc=db.things.findOne({_id:ObjectId("4f36234964480e0bcb6d6036")})  
  >doc  
  { "_id" : ObjectId("4f36234964480e0bcb6d6036"), "x" : 4, "j" : 20 }  
  > 

 

  从这个例子也可以看出,findOne()方法返回的是文档对象,而不是指针。

posted @ 2015-09-15 20:26  ZashioM  阅读(276)  评论(0编辑  收藏  举报