要在使用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()