美文网首页我爱编程
mongodb入门文档

mongodb入门文档

作者: 学无止境byMrg | 来源:发表于2018-05-14 10:09 被阅读0次

    一、预备工作

    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删掉就好  简单粗暴 不过不知道啥后果

    相关文章

      网友评论

        本文标题:mongodb入门文档

        本文链接:https://www.haomeiwen.com/subject/uldddftx.html