• 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)}} )
  • 相关阅读:
    LINQ标准查询操作符及例子(转载)
    Winform Combox 下拉模糊匹配
    在RowDataBound事件中取值的几种方法 转载
    shell脚本作业练习题8.6
    7.31.... 简单的python代码
    shell 脚本——第一节课 bash的基本特性
    shell 脚本——第二节课 重定向和管道符
    730
    应用范例:解析 Yahoo 奇摩股市的各档股票资讯HtmlAgilityPack
    微软一个罕为人知的无敌命令
  • 原文地址:https://www.cnblogs.com/naixin007/p/10436761.html
Copyright © 2020-2023  润新知