mongodb入门文档

一、预备工作

1.Linux下Mongodb安装和启动配置

        http://blog.csdn.net/yuwenruli/article/details/8529192

2.windows下mongodb安装和启动配置

        http://www.cnblogs.com/linjiqin/p/3192159.html

3.linux mongo启动 /关闭  

  1.启动   

./mongod --storageEngine mmapv1 --dbpath=/usr/gongbg/mongo_data/data--logpath=/usr/gongbg/mongo_data/logs--logappend --port=27017--fork --auth

2.关闭 

./mongouseadmindb.shutdownServer()

3. 创建用户

具体步骤如下

a.首先用admin用户登陆

b.选择想创建用户的数据库

c.创建用户

use admindb.createUser(  {"user":"xxx","pwd":"xxx","roles": [ {role:"clusterAdmin",db:"admin"},                {role:"readAnyDatabase",db:"admin"},"readWrite"] } )use xxx(dbname)db.createUser({user:"baidubaike_",pwd:"baidubaike_123",roles:["readWrite"]})


    各种权限解释

Built-In Roles(内置角色):    1. 数据库用户角色:read、readWrite;    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;    4. 备份恢复角色:backup、restore;    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase    6. 超级用户角色:root      // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)    7. 内部角色:__system


4.Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly

        命令行输入     export LC_ALL=C 即可

5.Mongo VUE 可以和 MongoDB 连接,可是无法打开 collection

        http://www.oschina.net/question/1995999_2148135

6.mongo文章

http://www.360doc.com/content/15/1010/15/1519870_504671696.shtml

二、mongo 查询  

0.官方文档

https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/

1. 包含省略号查询

{    title:/\\.{3}$/}

2.是否包含

{"hasfastPhoto": {"$exists":true}}

3.小于

{"imgTxtUpdateFlag": {       $lt:7}}

4.或者

{"$or": [        {"hasfastPhoto":1},        {"imgTxtUpdateFlag":7}    ]}

5.等于

{url:'http://zhidao.baidu.com/question/1539766649154449027.html'}

6.#在mongovue下使用

{sort}         {"insertTime" : -1}

7.and查询

{"$and": [            {"insertTime": {"$gte":"2015-02-06 14:51:04","$lte":"2015-02-06 14:52:03"}        }    ]}

8.like查询

① 普通like查询

{"u": /.content.*/}

② 忽略大小写

{title:{'$regex':'Vitamin','$options':'i'}}

9.如果检索需要不区分大小写,我们可以设置 $options 为 $i。

{"u": {$regex:'news.163.com',$options:'i'}}

10.not查询

{"u": {$not:/.content.*/}}

11.子文档like查询

{"markingTagList": {"$elemMatch": {"appName": '政策',"currentTagsArray": '国办发'        }    }}

{"similarList.title":/.*302*./}

12.or查询

{"$or": [        {"poemCon": /.①.*/        },{"poemCon": /.②.*/        }    ]}

13.and,or组合

{"$and": [        {"$or": [                {"reported": {"$exists":false}                },                 {"reported":0}            ]        },        {"$or": [                {"hidden": {"$exists":false}                },                 {"hidden":1}            ]        }    ],"_id":1081}

14.mongo分组查询(mongovue)

Group中      {"city":true}Reduce中      Initial Value:                     {"count":0}function Reduce(doc, out){        out.count +=1}Finalize中function Finalize(out){returnout;    }

原生写法db.getCollection('drugfuture').group({            key: { pageNo:true},            cond: { startTime:'2015-04-01',endTime:'2015-05-01'},            $reduce:function ( curr, result ) {                        result.total +=1;                      },            initial: { total :0}          }        )

对group后的数据进行过滤db.yiMaiTongFinal2.aggregate(        [                                                {$group:{_id :"$批准文号:",count :{$sum :1}}},                        {$match:{count:{$gt:1}}}                      ] )

多字段聚合(limit范围0~50)db.bysy_chufang_repeat_drug_disease.aggregate( [  {$group:{        _id:{drugName:"$drugName",disease:"$disease"}        ,count:{$sum:1}      }  },{$sort:{count:-1} }  ,{$limit :50}  ])

15.查询系统中所有用户

db.system.users.find();

三、mongo 修改:

1.设置st字段为0

{    $set: {    st:0}}

四、mongo删除

1.mongo删除字段

{    $unset:{"story":""}}

五、mongo插入(ps:mongovue)

1.在创建的表中新增列与数据,右击表选择Insert document    

六、mongodump备份

mongodump --archive --db jinjing --host 127.0.0.1 --port 10088 | mongorestore --archive --host 182.92.202.151 --port 27017

其他、一些实践性的东西

mongo学习网站

http://www.runoob.com/mongodb/mongodb-mongodump-mongorerstore.html

mongodb 分片实战

http://www.cnblogs.com/magialmoon/archive/2013/04/10/3013121.html

pymongo使用示例

1.一次更新多条

db.collection.update({}, {'$set' : {'salary' : 10000}}, upsert=False, multi=True)

mongo导出

    a>linux

        ./mongoexport --db baiduBaike --collection url --out /home/gongbg/url.json

    b>windows

   D:\java\MongoDB 2.6 Standard\bin>mongoexport.exe -d chat -c chat -q {"qudao":3},{"ques":1,"ans":1,"_id":0} --csv -f ques,ans -o temp.csv

官方文档

    http://docs.mongoing.com/manual-zh/reference/program/mongoexport.html

The --journal option is the one causing the problem as that option is removed from Mongo 3.0.0

Remove the --journal option and it should work fine

mongo常规备份

http://www.cnblogs.com/yaoxing/p/mongodb-backup-rules.html  (转)


mongo有大量重复数据,在3.0以后不支持建索引。

dropDups选项为true时会删除集合的重复值,但现在报错了,经过查询dropDups不支持mongodb3版本了

用以下方法解决在重复数据的集合里建立唯一索引

1.首先把集合数据导出

./mongoexport --db baiduBaike --collection url --out /home/gongbg/url.json

2.删除集合数据

db.CollectedUrl.remove({})

3.在集合上创建唯一索引

db.CollectedUrl.ensureIndex({uri:1},{unique:true})

4.把导出数据再次导入集合中

./mongoimport --db baiduBaike --collection url --upsert /home/gongbg/url.json

注意要加上--upsert选项

--upsert   insert or update objects that already exist



mongodb windows分片配置

http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html

mongo linux 分片配置

mongod --fork --dbpath/home/gongbg/mongo_data/data/config  --logpath /home/gongbg/mongo_data/log/config/config.log --port10000--storageEngine mmapv1mongos --port20000--configdb172.20.0.26:10000--logpath/home/gongbg/mongo_data/log/mongos/mongos.log --forkmongod --dbpath/home/gongbg/mongo_data/data/shard/--logpath/home/gongbg/mongo_data/log/shard/shard.log --fork --port27019--storageEngine mmapv1./mongod --storageEngine mmapv1 --dbpath=/home/gongbg/mongo_data/data/shard/ --logpath=/home/gongbg/mongo_data/log/shard/shard.log --logappend --port=27020--forkmongo --port20000use admindb.runCommand({addshard:"172.20.0.26:27019"})db.runCommand({addshard:"172.20.0.18:27020"})db.runCommand( {enablesharding :"baiduBaike"} )db.runCommand( {shardcollection :"baiduBaike.content",key :{url :1} } ) db.printShardingStatus();

mongo错误(导致启动不了)

openExisting size 38273024 less than minimum file size expectation /home/gongbg/mongo_data/data/baiduBaike.13

把baiduBaike.13删掉就好  简单粗暴 不过不知道啥后果

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容