MongoDB的简单搭建

创建log和data目录
mkdir log
mkdir data

新建日志文件
touch mongodb.log

daemon方式启动的fork参数也可以配置配置文件中
port=27017
dbpath=data/db
logpath=log/mongodb.log
logappend=true
fork=true
master = true

./mongod --dbpath /home/MongoDB/mongodb/data --logpath /home/MongoDB/mongodb/log/mongodb.log

启动客户端连接
./mongodb
退出
在shell中输入exit

相关命令:
show dbs show collections show users show profile show logs

如果想创建一个数据库名称 <coc>
use mydb

要检查当前选择的数据库使用命令:
db

创建的数据库mydb 列表中是不存在的。要显示的数据库,需要把它插入至少一个文件。
db.movie.insert({"name":"tutorials yiibai"})

创建master.conf

#master.conf
dbpath=/home/MongoDB/mongodb/data/master
logpath=/home/MongoDB/mongodb/log/master.log
pidfilepath=/home/MongoDB/mongodb/log/master.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.1.235.62
port=27017
oplogSize=10000
fork=true
noprealloc=true

创建
slaver.conf
dbpath=/home/MongoDB/mongodb/data/slaver
logpath=/home/MongoDB/mongodb/log/slaver.log
pidfilepath=/home/MongoDB/mongodb/log/slaver.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.131
port=27017
oplogSize=10000
fork=true
noprealloc=true

主从节点启动
./mongod --config /home/MongoDB/mongodb/master.conf
./mongod --config /home/Mongodb/slaver.conf

cfg={ _id:"testrs", members:{_id:0,host:‘10.1.235.62:27017‘,priority:2}, {_id:1,host:‘10.1.235.61:27017‘,priority:1}

cfg={ _id:"testrs", members:{_id:0,host:‘10.1.235.62:27017‘,priority:2}, {_id:1,host:‘10.1.235.61:27017‘,priority:1}]};

./mongo 10.1.235.62:27017

./mongo 10.1.235.61:27018

MongoDB与传统SQL:

db.users.find() select * from users

db.users.find({"age" : 27}) select * from users where age = 27

db.users.find({"username" : "joe", "age" : 27}) select * from users where "username" = "joe" and age = 27

db.users.find({}, {"username" : 1, "email" : 1}) select username, email from users

db.users.find({}, {"username" : 1, "_id" : 0}) // no case // 即时加上了列筛选,_id也会返回;必须显式的阻止_id返回

db.users.find({"age" : {"$gte" : 18, "$lte" : 30}}) select * from users where age >=18 and age <= 30 // $lt(<) $lte(<=) $gt(>) $gte(>=)

db.users.find({"username" : {"$ne" : "joe"}}) select * from users where username <> "joe"

db.users.find({"ticket_no" : {"$in" : [725, 542, 390]}}) select * from users where ticket_no in (725, 542, 390)

db.users.find({"ticket_no" : {"$nin" : [725, 542, 390]}}) select * from users where ticket_no not in (725, 542, 390)

db.users.find({"$or" : [{"ticket_no" : 725}, {"winner" : true}]}) select * form users where ticket_no = 725 or winner = true

db.users.find({"id_num" : {"$mod" : [5, 1]}}) select * from users where (id_num mod 5) = 1

db.users.find({"$not": {"age" : 27}}) select * from users where not (age = 27)

db.users.find({"username" : {"$in" : [null], "$exists" : true}}) select * from users where username is null // 如果直接通过find({"username" : null})进行查询,那么连带"没有username"的纪录一并筛选出来

db.users.find({"name" : /joey?/i}) // 正则查询,value是符合PCRE的表达式

db.food.find({fruit : {$all : ["apple", "banana"]}}) // 对数组的查询, 字段fruit中,既包含"apple",又包含"banana"的纪录

db.food.find({"fruit.2" : "peach"}) // 对数组的查询, 字段fruit中,第3个(从0开始)元素是peach的纪录

db.food.find({"fruit" : {"$size" : 3}}) // 对数组的查询, 查询数组元素个数是3的记录,$size前面无法和其他的操作符复合使用

db.users.findOne(criteria, {"comments" : {"$slice" : 10}}) // 对数组的查询,只返回数组comments中的前十条,还可以{"$slice" : -10}, {"$slice" : [23, 10]}; 分别返回最后10条,和中间10条

db.people.find({"name.first" : "Joe", "name.last" : "Schmoe"}) // 嵌套查询

db.blog.find({"comments" : {"$elemMatch" : {"author" : "joe", "score" : {"$gte" : 5}}}}) // 嵌套查询,仅当嵌套的元素是数组时使用,

db.foo.find({"$where" : "this.x + this.y == 10"}) // 复杂的查询,$where当然是非常方便的,但效率低下。对于复杂查询,考虑的顺序应当是 正则 -> MapReduce -> $where

db.foo.find({"$where" : "function() { return this.x + this.y == 10; }"}) // $where可以支持javascript函数作为查询条件

db.foo.find().sort({"x" : 1}).limit(1).skip(10); // 返回第(10, 11]条,按"x"进行排序; 三个limit的顺序是任意的,应该尽量避免skip中使用large-number、

时间: 2024-11-08 21:44:18

MongoDB的简单搭建的相关文章

mongodb副本集搭建过程中的问题和解决技巧

在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天主要负责的事,就是一个系统的全部服务器迁移中的部分机器迁移,还有一部分由别人负责. 这个系统涉及到flume数据采集,storm数据分析,rabbitmq消息分发,ehcache缓存提升系统性能,mongodb副本集存储数据,tomcat管理系统应用等,架构基本如下: 而这里我主要负责的是rabbi

ubuntu下eclipse+erlang+mongodb开发环境搭建

ubuntu下eclipse+erlang+mongodb开发环境搭建 - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟 最近公司webGame项目中用到了Erlang+MongoDB,没办法项目需要那就学呗. 学这个东西最起码得有环境吧,今天搭建开发环境就顺便记录一下,依然在ubuntu下进行开发. 顺便说下,如果做开发,最好选择linux,因为很多环境在linux下搭建很方便.win下一般也会 有相应的发法搭建,但是经常会遇到一些莫名其妙的问题.因此建议做开发的

(1)Jenkins Linux环境下的简单搭建

(1)Jenkins Linux环境下的简单搭建 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ----百度百科 这是一款基于Java开发的工具.种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. 首先,所需要准备的工具JDK.Maven.资料上显示JDK版本最好高于1.7,并没有研究1.7以下版本,所谓"没有实际调研,就没有发言权",在此就不做过多

LVS-NAT模式简单搭建

LVS作为一款优秀的负载均衡软件,一直受到很多企业的青睐,虽然性能比不上价格昂贵的负载均衡硬件,但对于大部分的业务场景,LVS还是能出色地胜任的. LVS工作在网络的第四层,内核的tcp/ip栈上,这也决定了它在所有负载均衡软件中性能是最好的. LVS主要由两部分组成,一个是工作在用户空间的ipvsadm,另一个是工作在内核上的ipvs.ipvsadm主要负载管理集群服务,包括添加.删除.修改集群服务.对数据包进行监控等,真正起到负载均衡的是ipvs.ipvs主要监听在INPUT钩子函数中,一旦

solr 简单搭建 数据库数据同步(待续)

原来在别的公司负责过文档检索模块的维护(意思就是不是俺开发的啦).所以就稍微接触和研究了下文档检索. 文档检索其实是全文检索,是通过一种技术把N多文档进行一定规律的切割归类,然后创建易于搜索的索引式文件,然后搜索具有某些规律的文档时,能够通过快速定位索引,然后根据索引提供的信息精确定位到文档从而实现迅速找到文档.这个文档一般成为条目. 上家公司的时候使用的是Lucene加上Zoie实现的.lucene是apache下的开源项目,不过并不是全文检索的实现,而是一个全文检索的引擎,是一个架构,是其他

MongoDB Replica Set搭建集群

MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点,它手中握着一张选票,决定上面两个standard节点中的哪一个可以成为primay. 机器名称和预承担的角色如下: test39 primary test41 secondary test42 arbiter 介绍一下涉及到的参数 --dbpath   数据文件路径 --logpath  日志文件

springmvc4环境简单搭建和定时任务

之前复制粘贴创建了几个ssm的项目,然而回头让自己写的时候还是一头雾水,究其原因是spring的陌生.仅仅是写过几个helloworld而已.而且是照着写.我都不知道springmvc到底需要多少jar,都用来干嘛.所以,接下来要用心看spring原理了. 最近由于有定时任务的需求,简单搭建了一个springmvc4的helloworld. ide采用的是idea,当然eclipse应该也是没问题的,因为都是maven项目. 1.创建好maven结构. 可以通过new->project->ma

ubuntu13.04下ftp的简单搭建过程

本文主要介绍一下ubuntu13.04下ftp的简单搭建过程: 主要实现基本的功能: l 实现匿名用户访问 l 上传资料 l 实现对特定ip或ip段开放服务 l 等等... 下面介绍一下安装过程: Ubuntu自带的FTP服务器是vsftpd. 1.安装vsftpd 对于ubuntu下相对简单只需要一条 sudo apt-get install vsftpd 安装默认在/src下建立一个ftp目录. 应该可以看到一个空白内容的ftp 文件. 默认状态下是可以匿名下载,但不能写入或是上传 2.设置

DHCP 简单搭建 本人初学者 &nbsp; 勿喷

首先呢,本人属于初学者,只是为了当笔记看,望大神们多多指点,写的不好,勿喷哦! 想要搭建DHCP首先要一个环境,以下是在两台虚拟机上的实验,所以环境准备需要关掉防火墙,关闭SELINUX,安装DHCP服务,环境准备就不写了,下面是本人在两台RHEL6.5虚拟机上的简单搭建过程: 两台虚拟机本人设置是这样的,服务器端与客户机端都与自己主机名字相同,以便于区分.当然了在虚拟机上实验需要两台虚拟机设置同样的特定虚拟网络在一个频道. 服务器端上的配置 [[email protected] ~]# vim