zoukankan      html  css  js  c++  java
  • win下MongoDB使用

    ● 安装

    ● 启动

    1、创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)

    2、创建配置文件mongo.conf,文件内容如下:

    #数据库路径 dbpath=d:MongoDBServer3.4data
    
    #日志输出文件路径 logpath=d:MongoDBServer3.4logsmongo.log
    
    #错误日志采用追加模式 logappend=true
    
    #启用日志文件,默认启用 journal=true
    
    #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false quiet=true
    
    #端口号 默认为27017 port=27017

    3、通过执行bin/mongod.exe,使用--install选项来安装服务,使用--config选项来指定之前创建的配置文件。 cmd进 入d:MongoDBServer3.4in

    注意是mongod.exe而不是mongo.exe

    mongod.exe ‐‐config "d:MongoDBServer3.4mongo.conf" ‐‐install

    4、启动mongodb服务,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功

     ● 连接

    a.使用mongodb自带客户端连接(mongo.exe)

    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?
    options]]

    例子:

    mongodb://localhost 连接本地数据库27017端口
    mongodb://root:itcast@localhost 使用用户名root密码为itcast连接本地数据库27017端口
    mongodb://localhost,localhost:27018,localhost:27019,连接三台主从服务器,端口为27017、27018、27019

    b.使用studio3T客户端连接

    c.用java程序连接

    1)添加依赖

    <dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo‐java‐driver</artifactId>
    <version>3.4.3</version>
    </dependency>

    2)java代码

    @Test
    public void testConnection(){
    //创建mongodb 客户端
    MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
    //或者采用连接字符串
    //MongoClientURI connectionString = new
    MongoClientURI("mongodb://root:root@localhost:27017");
    //MongoClient mongoClient = new MongoClient(connectionString);
    //连接数据库
    MongoDatabase database = mongoClient.getDatabase("test");
    // 连接collection
    MongoCollection<Document> collection = database.getCollection("student");
    //查询第一个文档
    Document myDoc = collection.find().first();
    //得到文件内容 json串
    String json = myDoc.toJson();
    System.out.println(json);
    }

      ● 操作数据库

    1、查询数据库

    show dbs #查询全部数据库
    db       #显示当前数据库

    2、创建数据库(有DATABASE_NAME数据库则切换到此数据库,没有则创建)

    use DATABASE_NAME

    3、删除数据库

    use test02
    db.dropDatabase()

    4、创建集合

    db.createCollection(name, options)
    name: 新创建的集合名称
    options: 创建参数

    5、删除集合

    db.collection.drop()
    例子:
    db.student.drop() #删除student集合

    6、插入文档

    db.student.insert({"name":"程序员","age":10})

    7、更新文档

    如果不加修改器$set,这条文档除了name字段其它字段都不见了

    db.student.update({"name":"程序员"},{$set:{"name":"北京程序员"}})

    8、删除文档

    1)删除所有文档

    db.student.remove({})

    2)删除符合条件的文档

    db.student.remove({"name":"程序员"})

    9、查询文档

    db.collection.find(query, projection)
    query:查询条件,可不填
    projection:投影查询key,可不填

    如下只返回name和age:

    db.student.find({"name":"程序员"},{name:1,age:1,_id:0})

    查询某集合下文档数量:

    db.student.count()
    db.student.count({"id":"001"})

    限定查询条数:

    db.spit.find().limit(3)

    10、创建用户。数据库用户角色:read、readWrite;

    use admin
    db.createUser(
    {
    user:"root",
    pwd:"root",
    roles:[{role:"readWrite",db:"admin"}]
    }
    )

    11、查询用户

    show users

    12、删除用户

    db.dropUser("root1")

    13、修改密码

    use admin
    db.changeUserPassword("root","123")

    14、docker运行mongodb并开启认证

    docker run -di --name=mongo -p 27017:27017 mongo --auth

    运行后进入该docker容器创建root用户

     15、高级操作

    ● 大于 小于 不等于

    db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
    db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
    db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
    db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
    db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value

    ● 包含与不包含

    //查询吐槽集合中userid字段包含1013和1014的文档
    db.spit.find({userid:{$in:["1013","1014"]}}) 
    //查询吐槽集合中userid字段不包含1013和1014的文档
    db.spit.find({userid:{$nin:["1013","1014"]}})

    ● 条件连接

    //查询吐槽集合中visits大于等于1000 并且小于2000的文档
    db.spit.find({$and:[ {visits:{$gte:1000}} ,{visits:{$lt:2000} }]})
    //查询吐槽集合中userid为1013,或者浏览量小于2000的文档记录
    db.spit.find({$or:[ {userid:"1013"} ,{visits:{$lt:2000} }]})

    ● 使某列值在原有值的基础上进行增加或减少,用$inc运算符来实现

    db.spit.update({_id:"2"},{$inc:{visits:NumberInt(1)}} )
  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/naixin007/p/10436761.html
Copyright © 2011-2022 走看看