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代码,例如