mongodb安装及基础命令

安装mongodb(mongodb-linux-x86_64-3.2.4.tgz)
1 export PATH=$PATH:/usr/local/mongodb/bin
2 /usr/local/mongodb/bin 新增mongodb.conf
port=27017
dbpath=/opt/mongodb/data/db
logpath=/opt/mongodb/logs/mongodb.log
logappend=true
fork=true
3 ./mongod -f mongodb.conf服务端启动
./mongod -f mongodb.conf --rest

4 停止
use admin
db.shutdownServer();

使用的是【Spring 3.1.2.RELEASE 版本】 + 【spring-data-mongodb 1.3.0.RELEASE】 + 【mongo-java-driver 2.11.1】

show dbs;
db.logfile.stats();
db.collection.stats();
db.logfiledb.stats();
db.collection.find()
db.collection.findOne()
db.getCollection("foo-ee") 得到foo-ee集合

db.collection.remove() //集合本身和索引都会保留
db.drop_collection("collection") //整个集合和索引都被删除
db.tbname.drop()

db.update{criterial,{"$inc":{"pageviews":1}}} //值加1
db.update{criterial,{"$set":{"key":"val"}}} //值修改
db.update{criterial,{"$push":{"key":"val"}}} //数组push

db.update{{"key":{"$ne":"temp"}},{"$push":{"key":"temp"}}} //如果数组中不存在temp,则插入
db.update{criterial,{"$addToSet":{"key":"temp"}}} //可以插入时避免重复
db.update{criterial,{"$addToSet":{"key":{"$each":["val1","val1","val1"]}}}} //addToSet和each组合
db.update({},{"$pull":{"key":"val1"}}) //将所有匹配的部分删掉
db.update({"comments.author":"jhone"},{"$set":{"comments.$.author":"jim"}})//用定位符替换数组中符合条件的名字
db.update({"count":25},{"$inc":{"count":3}},true) //第三个参数true代表是upsert 没有匹配的,增加一个25的,再增加为28

db.find(criterial,{"key1":1,"key2":0}) //返回值包含key1,不含key2

start=new Date("2015-01-01")
db.find({"stat_date",{"$lt":start}} //lt gt lte gte Date精确到毫秒
db.find({"key":{"$ne":"val"}} //key!=val

db.find({"$or":[{"key1":{"$in":[123,"456"]}},{"key2":"val2"}]}) //$in多个不同类型的值 $nin $or
db.find({"key":{"$not":{"$mod":[5,1]}}) //$mod取余 %5=1的值 $not

db.find({"key":{"$in":[null],"$exists":true}}) //键存在并且值为null
db.find({"key":null}) //值为null或者不存在该键的文档
db.find({"key":/val/i}) //正则

数组
db.food.insert({"fruit":["apple","banana","peach"]})
db.food.find({"fruit":"apple"})
db.food.find({"fruit":{"$all":["apple","banana"]}}) //同时包含
db.food.find({"fruit.2":"banana"})

db.food.find({"fruit":{"$size":3}}) //只能用于查找定长数组,无法使用范围查询
db.food.update({"$push":{"fruit":"strawberry"},"$inc":{"size":1}})
db.food.find({"size":{"$gt":3}}) //增加size,实现范围查询

db.log.findOne(criterial,{"comments":{"$slice":-10}}) //返回数组后十个及文档所有字段
db.log.findOne(criterial,{"comments":{"$slice":10}}) //返回数组前十个及文档所有字段
db.log.findOne(criterial,{"comments":{"$slice":[25,10]}}) //返回数组第25个元素到35及文档所有字段

db.log.find({"name":{"first":"je","last":"fa"}}) //固定顺序查找,完全精确匹配
db.log.find({"name.first":"je,"name.last":"fa"}) //无固定顺序
db.log.find({"comments":{"name.first":"je,"name.last":"fa"}}) //comments保存数组,只要comments里面的多个内嵌文档加起来包含两个值即可,与下面一个区别
db.log.find({"comments":{"$elemMatch":{"name.first":"je,"name.last":"fa"}}}) //comments保存数组,elemMatch指定了数组单个内嵌文档限定条件

//where不能使用索引
db.log.find({"$where":"this.x+this.y==10"})
db.log.find({"$where":"function(){return this.x+this.y==10;}"})

db.stock.find({"desc":"mp3"}).limit(50).skip(50).sort({uname:1,age:-1}) //skip太多影响性能,sort 1升序 -1降序 分页查找

//索引
db.log.ensureIndex({"date":1,"uname":1},{"name":"date_1_uname_1"}) //索引名称
db.log.ensureIndex({"date":1},{"unique":true},{"background":true}) //索引名称 后台处理可以防止建立索引时阻塞请求
db.stock.find({"desc":"mp3"}).hint({"desc":1})

//地理空间索引时假设在一个平面上
//按照精纬度查找靠近的点文档
{"gps":{"x":-30,"y":30}}
db.map.ensureIndex({"gps":"2d"},{"min":-1000,"max":1000})
db.map.find({"gps":{"$near":[40,-73]}}).limit(10)
db.runCommand({geoNear:"map",near:[40,-73],num:10})
//按照精纬度查找咖啡店
db.map.ensureIndex({"gps":"2d","desc":1})
db.map.find({"gps":{"$near":[40,-73]},"desc":"coffee"}).limit(1)

db.log.count()
db.log.count({"x":1})

[{"day":"2010-10-03","time":"2010-10-03 03:55:22",price:3},{"day":"2010-10-03","time":"2010-10-03 04:55:22",price:3},{"day":"2010-10-03","time":"2010-10-03 05:55:22",price:3}]
db.runCommand({"distinct","tbname","key":"userid"})
db.runCommand({"group":{
"ns":"gp", //集合名
"key":{"day":true}, //分组字段
"initial":{"time":0},
"$reduce":function(doc,prev){ //max
if(doc.time>prev.time){
prev.price=doc.price;
prev.time=doc.time;
}
},
"$finalize":function(prev){ //改变返回结果
if(prev.price=3){
delete prev.price
}
}
}
})
mongodb 规定 group一次的记录不能超过10000条,超过10000条的 必须用map reduce计算

//map reduce
map=function(){
for(var key in this){
emit(key,{count:1});
}
}
reduce=function(key,emits){
total=0;
for(var i in emits){
total+=emits[i].count;
}
return {"count":total};
}
mr=db.runCommand({"mapreduce":"tbname","map":map,"reduce":reduce})
db[mr.result].find()

db.listCommands()

//固定集合,可以在程序中使用尾部游标获取新添加的文档
db.createCollection("collection",{capped:true,size:10000,max:100}) //创建固定集合,大小事10000字节
db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false})
db.my_collection.find().sort({"$natural":-1}) //按照插入顺序查询也就是自然顺序,-1是反向

//创建用户
db.createRole(
{
role: "root",
privileges: [
{ resource: { db: "logfile", collection: "" }, actions: [ "find", "update", "insert", "remove" ] }
],
roles: []
}
)
db.createUser(
{
user: "root",
pwd: "pwd",
roles: [root] //root默认超级管理员
}
)
db.createUser( {
user: "logfile",
pwd: "pwd",
roles: [ { role: "root", db: "logfile" } ]
});

db.getUsers()
db.grantRolesToUser("root",[{role:"root", db:"logfile"}])
db.auth("root","jscnbi_123654")

时间: 2024-08-26 17:38:51

mongodb安装及基础命令的相关文章

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

Linux安装与基础命令

首先准备一个liunx镜像和一台安装好虚拟机的电脑. 配置好虚拟机,选在稍后安装.选择镜像文件,开启虚拟机进行安装. 配置yum源.首先插入光盘.由于是虚拟机,用的光盘镜像, 在/mnt/下面创建一个文件夹yum .      复制所有光盘里的内容到/mnt/yum   cp -rf /media/RHEL_5.9\ x86_64\ DVD/*  /mnt/yum 用vim编辑器配置文件   vim /etc/yum.repo.d/rhel-debuginfo.repo 配置如下: [rhel]

最小化安装CentOS基础命令

最小化安装CentOS基础命令 # yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc systemd-devel bash-completion tracero

docker 应用-1(安装以及基础命令)

Docker 安装 还是看官方文档吧TAT https://docs.docker.com/engine/getstarted/step_one/ 理解docker镜像和容器 镜像就是docker容器在运行的时候所使用的文件系统以及系统内核,以及其他参数.当然,docker镜像一般都会比实际的操作系统+软件要轻便的多. 容器就是一个镜像的运行实体. Docker基础命令 # 查看docker的版本信息 $ docker version # 查看安装docker的信息 $ docker info

Lesson 1-Linux安装及基础命令

1.Linux安装(略)2.基础命令 cd 切换目录 /home 切换到home目录 . 代表当前目录 .. 代表切换到当前目录的上级目录 ~ 代表切换到用户家目录 空 代表切换到用户家目录 - 代表切换到上一次的命令所在的目录 pwd 打印当前所在路径 ls 显示文件及目录,不包括隐藏文件 -a 显示文件及目录,包括隐藏文件 -lrth 显示文件及目录,按时间排序及显示文件目录大小 clear 清除当前屏幕信息 vi i 进入编辑模式 Esc 进入命令行模式 : 进入尾行模式 wq 保存并退出

nginx下载,安装,基础命令,和代理tomcat例子理解

一.nginx应用场景: 1.反向代理(用的非常多) 通俗就是,互联网的请求,nginx接受到后,转给内部的服务器,然后返回的内容给nginx,nginx再返回给请求放.因为是向外的,所以叫反向代理服务器 2.负载均衡(常用) 通俗就是将这一项业务功能,分给多个服务器使用,也是避免了一个服务器挂了,就over的情况,因为可以访问到其他的. 3.HTTp服务器 动静分离 4.正向代理 二 windows下载 及安装 下载稳定版本,以nginx/Windows-1.12.2为例,直接下载 nginx

Mongodb安装部署及命令简介

1.下载软件: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.3.tgz 2.解压安装: tar -zxvf mongodb-linux-x86_64-rhel62-3.0.3.tgz mv mongodb-linux-x86_64-rhel62-3.0.3 /usr/local/mongodb/ cd /usr/local/mongodb/ mkdir -p /data0/mongodb/db mkd

Git入门到高级系列1-git安装与基础命令

视频课程地址 腾讯课堂 为什么要进行项目文件的版本管理 代码备份和恢复 团队开发和协作流程 项目分支管理和备份 git 是什么? git是一个分布式的版本控制软件.版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 最初由林納斯·托瓦茲創作,於2005年以GPL釋出.最初目的是為更好地管理Linux內核開發而設計. 2005年,安德鲁·垂鸠写了一个简单程序,可以连接BitKeeper的存储库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeepe

Sqlmap下载安装与基础命令使用

本文介绍一下Sqlmap的安装跟配置环境变量. 顺便附上一些常用的命令 SQLMAP-64位.Python 下载链接:http://pan.baidu.com/s/1c0D82fm 密码:d7ec Python的安装一路默认就好,然后把Sqlmap解压. 这里以我电脑为例,进到sqlmap目录里,复制路径.(不要有中文字符存在) 然后右键我的电脑,属性,选择高级系统设置 选环境变量 在系统变量里找到Path.然后编辑,在最前方输入我们刚才复制的路径,然后后面加一个英文的分号——“;” 然后 保存