美文网首页
MongoDB配置与使用

MongoDB配置与使用

作者: PC_Repair | 来源:发表于2018-08-01 14:55 被阅读42次
    配置
    • 目录
    /usr/local/Cellar/mongodb/3.6.3
    
    • To have launchd start mongodb now and restart at login:
    brew services start mongodb
    
    • Don't want/need a background service you can just run :
    mongod --config /usr/local/etc/mongod.conf
    
    • 配置文件
    /usr/local/Cellar/mongodb/3.6.3/bin/mongodb.conf
    
    //内容
    port=27017  
    dbpath=/usr/local/Cellar/mongodb/3.6.3/data/  
    logpath=/usr/local/Cellar/mongodb/3.6.3/log/mongodb.log    
    fork = true
    
    • 启动(在bin路径下执行)
    ./mongod -f mongodb.conf
    
    //运行成功打印如下信息:
    about to fork child process, waiting until server is ready for connections.  
    forked process: 779  
    child process started successfully, parent exiting  
    
    • bin目录下进入MongoDB控制台
    ./mongo
    
    //退出
    exit
    //或者
    Ctrl+C
    //注意:退出的是MongoDB控制台,./mongo线程关闭
    
    • 关闭MongoDB服务
    > use admin
    > db.shutdownServer()
    //注意:关闭MongoDB服务,././mongod -f mongodb.conf线程关闭
    
    > use admin
    switched to db admin
    > db.shutdownServer()
    server should be down...
    2018-08-02T09:26:55.235+0800 I NETWORK  [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
    2018-08-02T09:26:55.235+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
    2018-08-02T09:26:55.235+0800 I NETWORK  [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) failed failed
    
    可能需要用到的操作
    • 查看关于mongo的线程
    ps -ef | grep mongo
    
    //查询结果示例
    lujiafengdeMBP:~ lujiafeng$ ps -ef | grep mongo
      501  2575     1   0  5:04下午 ??         0:01.51 ./mongod -f mongodb.conf
      501  2583  1247   0  5:05下午 ttys000    0:00.11 ./mongo
      501  2585  2463   0  5:05下午 ttys001    0:00.00 grep mongo
    
    • 杀死线程
    kill 2575
    
    基本操作(以下操作在MongoDB控制台中输入)

    MongoDB的默认数据库为db,该数据存储在data目录中。

    • 显示所有数据的列表
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    test    0.000GB
    
    • 显示当前数据库对象或集合
    > db
    test
    
    • 连接到一个指定的数据库
    > use local
    switched to db local
    > db
    local
    
    • 创建数据库
    //如果数据库不存在,则创建数据库,否则切换到指定数据库
    use DATABASE_NAME;
    
    • 删除数据库
    //删除当前数据库
    db.dropDatabase()
    
    • 创建集合
    db.createCollection(name, options)
    //name为要创建的集合名称
    //options为可选参数,指定有关内存大小及索引的选项
    
    //示例
    > db.createCollection("user")
    { "ok" : 1 }
    > show tables
    user
    

    在MongoDB中,在你插入一些文档时,MongoDB会自动创建集合。

    > db.book.insert({"name":"one day"})
    WriteResult({ "nInserted" : 1 })
    > show collections
    book
    user
    > 
    
    • 查看已有集合
    show collections
    
    • 删除集合
    db.collection.drop()
    //删除成功,返回true,否则返回false
    
    //示例:删除user集合
    > show tables
    user
    > db.user.drop()
    true
    > show tables
    > 
    
    • 插入文档
    db.COLLECTION_NAME.insert(document)
    //document可以为一个变量
    //3.2版本后新增插入语法
    db.COLLECTION_NAME.insertOne({"a":3})  //向指定集合插入一条数据
    db.COLLECTION_NAME.insertMany([{"b":2}, {'c':3}]) //向指定集合插入多条数据
    
    • 查看已插入的文档
    db.COLLECTION_NAME.find()
    //易读的方式读取数据,pretty()方法以格式化方式来显示所有文档
    db.COLLECTION_NAME.find().pretty()
    
    • 更新文档

    update()

    > db.book.update({"a":3},{$set:{"a":1}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > 
    

    以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

    db.book.update({"a":3},{$set:{"a":1}},{multi:true})
    

    save():通过传入的文档来替换已有的文档

    db.COLLECTION_NAME.save(document)
    
    • 删除文档
    db.COLLECTION_NAME.remove(
       <query>, //(可选)删除文档的条件
       {
         justOne: <boolean>, //(可选),true或1,则只删除一个文档
         writeConcern: <document>//(可选)抛出异常的级别
       }
    )
    
    //示例
    > db.book.remove({"a":1})
    WriteResult({ "nRemoved" : 1 })
    > 
    //输出所有数据
    > db.book.remove({})
    

    相关文章

      网友评论

          本文标题:MongoDB配置与使用

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