月归档:2013 年十一月

mongodb聚合函数

官方介绍聚合函数: http://docs.mongodb.org/manual/core/aggregation-introduction/ 1、count db.test.count(); 2、distinct db.runCommand(“distinct”: “table”, “key”: “age”); 3、group  最多只能处理上万个key xxx = { ns:”test_table”, key:{id:true}, initial:{num:0}, $reduce:function(doc,prev) { prev.num++ }, condition:{id:{$gt:1}} } 还可以增加 finalize 属性指定一个函数。对每组结果进行处理。。。。 db.test_table.group(xxx); 返回结果集 db.runCommand({group:xxx}); 返回结构: retVal 结果集 count 总记录数 keys 分组后的key数 ok 完成状态 4.mapReduce 不错的例子: … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb复制集+分片

复制集相当于集群配置,分片相当于对分表。因为需要的端口太多,方便观察在2个机器操作。也可以在一个机器的不同位置放多份mongodb的文件夹。 复制是2个机器之间的(也可以同机器不同端口),分片是同一个机器上的数据表分片。那复制就是要配置好各机器上对应的分片的复制,保证数据同步。 一、启动mongod进程 win ip:192.168.2.106 d:\MongoDB\bin\mongod.exe –shardsvr –replSet shard1 –port 27016 –dbpath “d:\MongoDB\data\shardReplSet\shard1_win” d:\MongoDB\bin\mongod.exe –shardsvr –replSet shard2 –port 27018 –dbpath “d:\MongoDB\data\shardReplSet\shard2_win” mac ip:192.168.2.107 /work/mongo/bin/mongod –shardsvr –replSet shard1 –port 27016 –dbpath /work/mongo/data/shardReplSet/shard1_mac /work/mongo/bin/mongod –shardsvr –replSet shard2 –port 27018 –dbpath /work/mongo/data/shardReplSet/shard2_mac 复制集的配置还没做,2台机器分别的2个窗口都会输出 … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb分片

此例子讲某个文档的分片存在同机器同磁盘的不同的目录下。 一、先建立sharding 再写数据 看分片效果 Shard Server 1:20000 Shard Server 2:20001 mongod.exe –shardsvr –port 20000 –dbpath d:\mongodb\data\shard\s0 –directoryperdb mongod.exe –shardsvr –port 20001 –dbpath d:\mongodb\data\shard\s1 –directoryperdb Config Server :30000 mongod.exe –configsvr –port 30000 –dbpath d:\mongodb\data\shard\config –directoryperdb 保证健壮性可开启多个 mongod.exe –configsvr –port 30001 –dbpath … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb主从配置和集群配置

一、主从配置: mongod.exe 参数 –rest 开启网页查询接口。可以让网页如 localhost:28017 查看某些信息。 windows 192.168.2.106 执行: mongod.exe –master –dbpath “d:\MongoDB\data\db”   mac os 192.168.2.107 执行:(掉坑里了填了2.107纠结了半天,失败会一直过2秒就重连一次。不设置logpath参直接输出信息方便调试) /work/mongo/bin/mongod –slave –source 192.168.2.106:27017 –dbpath /work/mongo/data/db   相关配置信息会保存到 local数据库的 source 集合下 相关命令 db.isMaster() db.$cmd.findOne({ismaster:1}); db.printReplicationInfo() db.printSlaveReplicationInfo()   在windows写入数据 在mac验证就ok   二、复制集 … 继续阅读

发表在 Nosql | 标签为 , | 留下评论

mongodb访问验证、数据导入导出、备份、恢复

限制访问 mongod –bind_ip 192.168.1.103 只允许此ip连接 mongod –bind_ip 192.168.1.103 –port 28018 只允许客户端用此ip此端口号连接 启动验证 mongod –auth 1、建立系统 root 用户 db.addUser(“root”,”111″) 2、建立指定权限用户 第三个参数只读 db.addUser(“user_reader”, “user_pwd”, true) db.system.users.find()可查看存在的用户 连接时 mongo -u root -p 111 导出数据库 ./mongoexport -d mydb -c table –csv -f uid,username,age -o  … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb游标和存储过程

mongodb 在php手册中有相关内容: http://www.php.net/manual/zh/book.mongo.php 核心类 MongoClient — MongoClient 类 (老的api 就是 mongo 类) MongoDB — MongoDB 类 (数据库对象) MongoCollection — The MongoCollection class (表(文档)对象) MongoCursor — The MongoCursor class (find 后的结果对象)   一、游标curso: for( var c = db.t3.find(); c.hasNext(); ) { … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb基本查询

db.foo.find(xxx)  xxx 为 {‘x’:’y’} 形式。本文主要整理此形式。 5.1 条件操作符 <, <=, >, >= 这个操作符就不用多解释了,最常用也是最简单的 db.collection.find({ “field” : { $gt: value } } ); // 大于: field > value db.collection.find({ “field” : { $lt: value } } ); // 小于: field < value … 继续阅读

发表在 Nosql | 标签为 | 留下评论

mongodb安装

抄袭自 mongodb权威指南。 一、 Windows 平台的安装 步骤一: 下载 MongoDB url 下载地址: http://downloads.mongodb.org/win32/mongodb-win32-i386-1.8.1.zip 步骤二: 设置 MongoDB 程序存放目录 将其解压到 c:\,再重命名为 mongo,路径为 c:\mongo 步骤三: 设置数据文件存放目录 在 c:盘建一个 db 文件夹,路径 c:\db 步骤四: 启动 MongoDB 服务 进入 cmd 提示符控制台,c:\mongo\bin\mongod.exe –dbpath=c:\db C:\mongo\bin>C:\mongo\bin\mongod –dbpath=c:\db Sun Apr 10 22:34:09 … 继续阅读

发表在 Nosql | 标签为 | 留下评论

awk的gsub函数

转载:http://blog.csdn.net/zhuying_linux/article/details/7104938 一。遇到的问题: 问题:echo “a b c 2011-11-22 a:d” | awk ‘$4=gsub(/-/,””,$4)’为啥 输出后 2011-11-22 变成 2 了? 解答: gsub(/-/,””,$4)的值是2【在赋值的情况下是这样的~】,你将2赋值给$4 ,gsub返回的是替换的次数。 如下是测试结果: [root@Test230 ~]# echo “a b c 2011-11-22 a:d” | awk ‘$4=gsub(/-/,””,$4)’ a b c 2 a:d 看另一种情况,只是替换的话~ [root@sor-sys config]# echo … 继续阅读

发表在 Linux | 标签为 , , | 留下评论

linux awk命令使用介绍

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。   使用方法 awk ‘{pattern + action}’ {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。 pattern就是要表示的正则表达式,用斜杠括起来。 awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。 … 继续阅读

发表在 Linux | 标签为 , | 留下评论