mongodb学习笔记

要在使用yum命令安装MongoDB前需要增加yum源,也就是在 /etc/yum.repos.d/目录中增加 *.repo yum源配置文件,
以下分别是针对centos 64位和32位不同的系统的MongoDB yum 源配置内容:    
   
我们这里就将该文件命名为:/etc/yum.repos.d/10gen.repo    
   
For 64-bit yum源配置:    
   
vi /etc/yum.repos.d/10gen.repo    
   
[10gen]    
name=10gen Repository    
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64    
gpgcheck=0   
For 32-bit yum源配置:    
   
vi /etc/yum.repos.d/10gen.repo    
   
[10gen]    
name=10gen Repository    
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686    
gpgcheck=0   
根据自己的系统选择相应的配置内容    
   
安装服务器端:    
[root@vm ~]# yum install mongo-10gen-server    
因为mongo-10gen-server包依赖于mongo-10gen,所以安装了服务器后就不需要单独安装客户端工具包mongo-10gen了



用yum安装mongodb和直接下载tgz安装的位置是不一样的
yum会将mongodb分散到各个目录,比如mongodb的工具会放在/usr/bin中

启动Monogodb服务mongod
# /etc/init.d/mongod start

配置文件/etc/mongod.conf
dbpath=/var/lib/mongo #数据库文件保存位置  

#向某个集合插入文档
>db.users.insert({username:"job"})

#集合文档个数
>db.users.count()

#查找集合所有文档
>db.users.find()

#用查询选择器进行查找
>db.users.find({username:"job"})

#更新文档,为job这个用户更新国家
>db.users.update({username:"job",{$set:{country:"canada"}})

#清空集合数据
>db.users.remove()

#删除某个或某些数据
>db.users.remove({username:"job"}) //删除集合中所有username是job的文档

#查询num在10到20的文档
>db.users.find({num:{"$gt":10,"$lt":20}})



显示系统上所有数据库的列表
>show dbs

显示当前数据库里的所有集合的列表
>show collections

看数据库与集合的更底层信息,比如查看集合和它的索引占用了多少空间
>db.stats()
>db.numbers.stats()


当有属性与目标集合同名时,可以使用getCollection 函数:
> db.getCollection("version");
test.version

分析查询情况
>db.foo.find().explain()

创建索引,按照升序
>db.foo.ensureIndex({"age":1})

删除索引
>db.rumCommand({"dropIndexes":"foo","index":"age_1"})

查看索引情况
>db.system.indexes.find("name":"age_1")

distinct用来找出给定键的所有不同的值。使用时必须指定集合和键
>db.runCommand({"distinct":"foo","key":"name"})

查看可用的命令
>db.listComands()

返回MongoDB服务器的版本号和主机的操作系统
>db.runCommand({"buildInfo":1})

返回指定集合的统计信息
>db.runCommand({"collStats":集合})

删除集合的所有数据
>db.runCommand({"drop":集合})

删除当前数据库的所有数据
>db.runCommand({"dropDatabase":1})

删除集合中名称为name的索引,如果名称为*,则删除全部索引
>db.runCommand({"dropIndexes":集合,"index":索引名字})

检查本服务器是主服务器还是从服务器
>db.runCommand({"isMaster":1})

列出服务器上的所有数据库
>db.runCommand({"listDatabases":1})

检查服务器是否正常
>db.runCommand({"ping":1})

可以将自己的全局变量放入system.js中
>db.system.js.insret({"_id":"x","value":1})
>db.eval("return x;")
1

为mongo添加管理员
>use admin
>db.addUser("root","123456")

为其他数据库添加用户
>use test
>db.addUser("test_user","123456")

添加只读用户
>db.addUser("read_only","123456",true)

mongodb启动的时候可以添加安全检查
# /usr/bin/mongod --auth --dbpath /var/lib/mongo start

登陆数据库
>use test
>db.auth("read_only","123456")

如果刚开始时作为管理员登陆的,那就可以操作任何数据库了

用户信息都放在system.users集合中
>db.system.users.find()

删除一个用户
>db.system.users.remove({"user":"root"})

//用java操作mongodb
public static void main(String[] args){
	Mongo connection = new Mongo();
	DB db = connection.getDB("search")
	DBCollection chemicals = db.getCollection("chemicals")

	BasicDBObject doc = new BasicDBObject();
	doc.put("x",1);
	doc.put("y","foo");

	BasicDBObject z = new BasicDBObject();
	z.put("hello","world");
	
	doc.put("z",z);
	
	chemicals.insert(doc);

	//{"x":1,"y":"foo","z":{"hello":"world"}}
}

可以在shell中同时连接多个mongod实例
>mongos = connect("localhost:27017")
>shard0 = connect("localhost:30000")

>mongos.users.find()

你可能感兴趣的:(mongodb)