今天是进入公司的第一天,得到了一台配置好了所有环境的电脑。
用eclipse打了一遍helloword之后,尝试使用了一下idea。
idea新建project,在指定工程路径的时候,选定的文件夹应当事先建立好。(否则,idea会提示该文件夹不存在,自动创建此文件夹,若是这样的话,编译的时候idea会报错------无法找到或加载main)
之后同组的头儿给我发了个MongoDB的文档,让我适应下新的数据库。
上网找了下安装、环境变量配置、服务配置的方法。发现电脑上已经安装好了MongoDB,根据环境变量路径找到了安装的文件夹。
打开交互页面实验语句的时候,刚开始就遇到了挫折。
------show dbs提示权限不足。
上网找了下,Mongodb在第一次进入的时候,可以添加超级管理员用户,而之后使用数据库就需要登录相关的用户才能获得权限。
但是我不知道之前使用这个电脑的人设置了一些什么账号。
找到的解决方法是,安装目录下的配置文件mongo.config中有一个属性是“auth=true”,这个代表使用授权模式启动服务。
把true改成false,然后重启数据库服务。
重新打开就可以自己添加用户,添删改查测试用的集合了。
======================================================================================================
这里写一些MongoDB的基本操作:
show dbs //显示所有数据库
use test //使用指定的数据库,这里的test是数据库的名字
show collections //显示当前数据库的所有集合(mongodb中的集合相当于sql中的table)
db.dropDatabase() //删除数据库
db.test.drop() //删除集合test
-------------------------------------------------------------------------------------------------------------------
添加:
(mongodb和sql不一样的地方是,sql会事先设计好表的属性,然后按照属性添加数据;而mongodb更类似于json,是在集合中储存键值对。)
db.test.insert("name":“陆卯伍”,"age":"21","sex":"male"); //这应该能看懂,值得一提的是mongodb中默认_id为主键,如果没有添加_id,数据库会自动添加。
db.test.insert("name":“王大锤”,"age":"22","grade":"1"); //如果再次添加的数据,有新的键出现,同样可以添加成功。(不像sql那样添加数据会被提前设计好的表属性限制)
db.test.insert("_id":"1","name":“王大”,"age":"22"); //如果自己添加_id,那么按照自己添加的数据为准。
-------------------------------------------------------------------------------------------------------------------
查找:
db.test_liuxiangyu.find(); //查找test集合中所有数据(和上面插入的语句表名和数据不太一样,但应该能看懂)(这里test_liuxiangyu是表名)。
db.test_liuxiangyu.find().pretty(); //格式化查询结果,pretty(),好看嘛。
db.test_liuxiangyu.find({"name":"liuxiangyu3"}).pretty(); //按照键值对精确查询
db.test_liuxiangyu.find({"name":"liuxiangyu2"},{"age":"21"}); //相当于sql中 where name=‘liuxiangyu2’ and age=‘21’。
db.test_liuxiangyu.find({ $or:[ {"name":"liuxiangyu2"},{"name":"liuxiangyu3"} ] }).pretty(); //where xxx or xxx
从runoob.com上面盗了张图
更新:
(偷几张图)
如:
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
//这个只更改一行
如
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})
//这个更改多行
删除:
db.collection.remove( <query>, //查询语句 { justOne: <boolean>, writeConcern: <document> } )