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()方法返回的是文档对象,而不是指针。