MongoDB的Shell基本操作
转载请出自出处: http://eksliang.iteye.com/blog/2174081
一.mongodb客户端
当我们在客户端运行mongo 192.168.238.133:27017/test时,shell会连接到mongodb服务器的test数据库,并将数据库连接赋值给全局变量db。这个变量是shell访问mongodb的主要入口点。
二.Shell基本操作
1、连接mongodb
mongo 127.0.0.1:27017/test
2、创建用户
use user
3、查看所有数据库
show dbs
4.给指定数据库添加集合
方式一:db.user.insert({"name":"ickes"})
这样会给数据库添加一个集合并往集合中添加一条记录
方式二:db.createCollection("scot.user")
5、查看当前数据库里面的集合
show collections
6、查看当前使用的数据库
db
三、shell对数据库的CURD
1、insert()函数可以将一个文档添加到集合中
格式:db.collectionName.insert({文档})
      > user={"userName":"ickes","userPwd":"xl123"}
db.user.insert(user);
    
    2、find()或者findOne()查询集合里面的文档(文档查询非常灵活,后面会专门讨论)
格式:db.collectionName.find()或者db.collectionName.findOne()
      > db.user.find() --查询所有文档
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" }
{ "_id" : ObjectId("54ae4bf10854b94e41b45ba4"), "userName" : "ickes", "userPwd"
: "xl123" }
    
    
      > db.user.findOne()--查询第一条数据
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" }
    
    3、修改文档(文档修改非常灵活,后面会专门讨论)
修改使用update()函数
格式:db.collectionName.update({查询条件},{更新条件})
      > user=db.user.findOne()   --查询第一个文档
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "ickes" }
> user.name='update.ickes' --将name修改为updae.ickes
update.ickes
> db.user.update({"name":"ickes"},user) --更name=ickes的文档
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user.findOne()      --再次查看,果然更新成功
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" }
    
    实际上上面这种方式是文档的替换,上面执行db.user.update()时,实际上是将新文档替换数据库中匹配的文档。怎么只修改文档的某个属性,后面会单独讲,mongodb的修改器
4、删除文档
使用remove()函数,可将文档从数据库中永久删除。
格式db.collectionName.remove({查询条件}),如果查询条件为空会删除索引文档,记住空是这样的空(db.collectionName.remove({}))
      > db.user.find()--先查看当前集合中的文档,两个
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" }
{ "_id" : ObjectId("54ae51210854b94e41b45ba5"), "pwd" : "aa" }
> db.user.remove({"pwd":"aa"})  --删除pwd=aa的文档
WriteResult({ "nRemoved" : 1 }) --打印删除成功
> db.user.find()                --再次查看,果然修改成功了
{ "_id" : ObjectId("54ae3f26d5ef861093d41356"), "name" : "update.ickes" }
    
    
四、删除数据中的集合
格式 db.collectionName.drop();
      > db.user.drop()
true
> show collections
system.indexes
test
    
    
五、删除数据库
格式db.dropDatabase()
      > show dbs   --查看当前实例拥有的数据库
admin  (empty)
local  0.078GB
test   0.078GB
user   0.078GB
> use user  --切换到user数据库
switched to db user
> db        --查看一下,是否真的切换成功
user
> db.dropDatabase() --删除当前数据库
{ "dropped" : "user", "ok" : 1 }
> show dbs          --再次查看,果然没有了
admin  (empty)
local  0.078GB
test   0.078GB
    
    
六、Shell帮助查看
由于MongoDB是一个简化了JavaScript的shell,可以通过查看JavaScript的在线文档得到大量帮助。对于MongoDB特有的功能,shell内置了帮助文档,可以使用help()方法进行查看
数据库级别的帮助:db.help()
集合级别的帮助:db.collectionName.help()
如果想知道一个函数是做什么的,可以直接在shell中输入函数名(函数名不要括号),这样可以直接看到该函数的JavaScript代码,例如


![Mogodb的Shell基本操作笔记(CURD)[三]](http://img.it610.com/image/product/7cbbf2083f664a9c953225d4f33de6f1.png) 
       
					 
					