维护人:陈权

一.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. CentOS7安装配置Apache、PHP和MySQL

    一.安装Apache sudo yum install httpd 安装成功后,Apache操作命令: systemctl start httpd //启动apache systemctl stop ...

  2. Failed to start mysqld.service: Unit not found

    输入命令 systemctl start mysql.service 要启动MySQL数据库是却是这样的提示 Failed to start mysqld.service: Unit not foun ...

  3. 2.10 webdriver中 js 使用

    来源: 使用Webdriver执行JS小结  http://lijingshou.iteye.com/blog/2018929 selenium常用的js总结  http://www.cnblogs. ...

  4. NOIP做题练习(day4)

    A - 同花顺 题面 题解 30分做法 爆搜即可. 60分做法 去重+贪心. 100分做法 去重+贪心后,我们要寻找一段符合条件的最长同花上升子序列 \(L\),\(n-L\) 即为所求的答案. 首先 ...

  5. ansible笔记(6):常用模块之系统模块

    1.cron模块 cron命令是计划任务功能,与crontab功能类似. 示例:时间格式--->>>分  时  日  月 星期 10 12 27 * *  tar -cvzf log ...

  6. 如何将mongo查询结果导出到文件中

    1.新建一个js文件,将查询方法写进去,如dump.js,文件内容如下 var c = db.campaign.find({status:1}).limit(5) while(c.hasNext()) ...

  7. 【SIKI学院】愤怒的小鸟创建过程-1

    第一讲:资源导入,场景的简单搭建 1.创建一个2D工程,用到了3个场景,因此ctrl +S创建场景00-level,ctrl+N保存在你创建的文件夹中,这样一个文件就创建好了,之后继续重复此步骤创建另 ...

  8. Java入门学习路线目录索引

    原创 Java入门学习路线目录索引 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/One_ ...

  9. lamp与zabbix开机自启

    目录 1.控制httpd脚本 2.控制zabbix_server脚本 3.控制zabbix_agentd脚本 4.服务端lamp开机自动启动 5.客户端zabbix_agentd开机自动启动 1.控制 ...

  10. Linux - seq

    1. 概述 生成序列的命令 之前貌似写过 seq 命令, 这次单独拉出来再写一次吧 节操先放一放 2. 命令 1. 帮助 命令 # 输出我就不打了, # 这个命令可用, 证明组件可用 > seq ...