维护人:陈权

一.mongodb install on linux
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
mv mongodb-linux-x86_64-3.0.6.tgz /usr/local/mongodb
tar -xvf mongodb-linux-x86_64-3.0.6.tgz

mkdir -p /usr/local/mongodb
mkdir -p /usr/local/mogodb/data&& mkdir -p /usr/local/mongodb/logs
用于存放mongo安装文件以及数据db存放,log 提供日志以及mongo配置
配置mongo
touch mongo/logs/mongo.conf
vi mongo.conf
添加配置项:
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs
logappend=true
journal=true
quite=true
port=9997
配置环境变量:
vi /etc/profile
export PATH=<mongodb-install-directory>/bin:$PATH #<mongodb-install-directory>/bin 为mongo bin目录
source /etc/profile

启动mongo:
cd <mongodb-install-directory>/bin
./mongod
操作mongo shell :
cd <mongodb-install-directory>/bin
./mongo
快速开始:
show dbs

创建或查看数据库
use mydb

创建集合
db.createCollection(name, options)
show collections 或者 show tables#查看集合

删除集合
db.mycollection.drop()
删除数据库
use mydb
db.dropDatabase()

插入数据:
db.mycollection.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘admin’,
url: ‘http://www.webank.com‘,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 11
})

格式化查询集合:
db.mycollection.find().pretty()
等价于sql select * from mycollection ;

更新数据集合:
db.mycollections.update({age:77},{$set: {name:”lisi”}},false,true)
等价于 update mycollections set name=”lisi” where age=77;
删除操作:
db.mycollection.remove({age:17})
等价于delete from mycollection where age=17 ;

查询前十条:
db.mycol.find().limit(10)
查询五到十
db.mycol.find().limit(10).skip(5)
排序:
db.mycol.find().sort({id:1}) #1 代表asc -1 为desc

模糊查询:
db.mycol.find({id:/job/})
等价于 select * from mycol where id like %job%;

精确查询:
db.mycol.find({age:11})
等价于 select * from mycol where age=17 ;
指定列查询:
db.mycol.find({},{age:1,id:1})
select id,name from mycol ;
且查询:
db.mycol.find({key1:value1, key2:value2}).pretty()
区间查询:
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({“by”:”99”}).pretty() where by = ‘99’
小于 {<key>:{$lt:<value>}} db.col.find({“likes”:{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({“likes”:{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({“likes”:{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({“likes”:{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({“likes”:{$ne:50}}).pretty() where likes != 50

or 查询:
MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()

等价于: select * from col where key1=value1 or key2=value2;

聚合函数:
aggregate() 方法的基本语法格式如下所示:

db.COLLECTION_NAME.aggregate()

db.mycol.aggregate([{$group : {_id : “$user”, num_tutorial : {$sum : 1}}}])
等价于: select count(*) from mycol group by user;

下表展示了一些聚合的表达式:

表达式 描述 实例
$sum 计算总和。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$sum : “$likes”}}}])
$avg 计算平均值 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$avg : “$likes”}}}])
$min 获取集合中所有文档对应值得最小值。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$min : “$likes”}}}])
$max 获取集合中所有文档对应值得最大值。 db.mycol.aggregate([{$group : {_id : “$by_user”, num_tutorial : {$max : “$likes”}}}])
$push 在结果文档中插入值到一个数组中。 db.mycol.aggregate([{$group : {_id : “$by_user”, url : {$push: “$url”}}}])
$addToSet 在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : “$by_user”, url : {$addToSet : “$url”}}}])
$first 根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : “$by_user”, first_url : {$first : “$url”}}}])
$last 根据资源文档的排序获取最后一个文档数据 db.mycol.aggregate([{$group : {_id : “$by_user”, last_url : {$last : “$url”}}}])

mongodb 用户指引的更多相关文章

  1. MongoDB用户

    MongoDB  增加用户 删除用户  修改用户  读写权限 只读权限,   MongoDB用户权限分配的操作是针对某个库来说的.--这句话很重要.   1. 进入ljc 数据库:       use ...

  2. MONGODB用户、角色和权限管理

      最近遇到很多问MONGODB用户认证授权方面的问题,现在特记录下来,与大家共享. 一.概念理解 1.用户概念 Mongodb的用户是由 用户名+所属库名组成 例如: 登录mongo  testdb ...

  3. 浅析MongoDB用户管理

    浅析MongoDB用户管理 http://www.jb51.net/article/53830.htm mongodb3.03开启认证 http://21jhf.iteye.com/blog/2216 ...

  4. MongoDB和Java(7):MongoDB用户管理

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  5. MongoDB用户权限管理配置

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

  6. MongoDB 用户配置

    ====[安装]====DOS下切换到文件所在盘符 例如 D:\MongoDB\bin设置数据库保存位置 mongod.exe --dbpath D:\MongoDB\Data [--auth]//用 ...

  7. mongodb用户授权

    1)登录admin 数据库,admin是隐藏的数据库,为mongodb的超级管理员数据表mongo admin新建用户db.createUser({'user':'test','pwd':'12345 ...

  8. MongoDB用户权限管理

    创建用户账号: (roles参数指定了用户的角色以及这个账号授权的数据库,在同一个数据库中不能同时创建两个用户名相同的账号) Mongodb内置的用户角色: 数据库用户角色:read.readWrit ...

  9. MongoDB用户权限认证

    关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...

随机推荐

  1. UIAutomation踩坑

    最近有这样一个需要,在一个AppDomain中通过UIAutomation做一些操作,并在操作完成后卸载掉这个AppDomain.然而在卸载这个AppDomain时,总会出现System.Cannot ...

  2. Jarvis OJ - [XMAN]level1 - Writeup

    Jarvis OJ - [XMAN]level1 - Writeup M4x原创,转载请表明出处http://www.cnblogs.com/WangAoBo/p/7594173.html 题目: 分 ...

  3. No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor

    使用jpa做增删改查的时候出现了这个异常,原因是转化成json的时候,fasterxml.jackson将对象转换为json报错,发现有字段为null 解决方案:实体类上添加 @JsonIgnoreP ...

  4. 【算法学习记录-排序题】【PAT A1012】The Best Rank

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  5. dijkstra堆优化板子

    咕咕咕. #include<queue> #include<cstdio> #include<cstring> #include<algorithm> ...

  6. mysql(2):索引

    索引基础 索引介绍 定义 索引是满足某种特定查找算法的数据结构.这些数据结构会以某种方式指向数据,从而实现高效查找. 优势 提高了查询速度 劣势 降低更新表的速度,因为更新表时,MySQL不仅要保存数 ...

  7. 不可将布尔值直接与true或者1进行比较

    不可将布尔值直接与TRUR.FALSE或者"0"."1"进行比较. 根据布尔值的定义,零值为"假"(记为FALSE),任何非零值都是&quo ...

  8. SQL注入 盲注

    来源:http://www.cnblogs.com/cheatlove/articles/384233.html SQL注入攻击: (1) 脚本注入式的攻击(2) 恶意用户输入用来影响被执行的SQL脚 ...

  9. [Note]后缀数组

    后缀数组 代码 void rsort() { for (int i = 1; i <= m; ++i) tax[i] = 0; for (int i = 1; i <= n; ++i) + ...

  10. gerp 查找, sed 编辑, awk 根据内容分析并处理.的作用

    awk(关键字:分析&处理) 一行一行的分析处理 awk '条件类型1{动作1}条件类型2{动作2}' filename, awk 也可以读取来自前一个指令的 standard input相对 ...