MongoDB的安装与基本使用

Mongodb的安装:

vi /etc/selinux/config
Modify:SELINUX=disabled
service iptables stop

yum -y install wget
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.6.tgz
tar -zxvf mongodb-linux-x86_64-rhel62-3.4.2.tgz
mv mongodb-linux-x86_64-rhel62-3.4.2 /usr/local/mongodb
cd /usr/local/mongodb/bin
mkdir -p /data/db /data/logs
touch /data/logs/mongodb.log
./mongod --dbpath=/data/db -fork --logpath=/data/logs/mongodb.log
   #-fork 表示后台运行
export PATH=/usr/local/mongodb/bin:$PATH
mongo  进入mongodb,可以使用CTRL+D来进行退出

Mongodb的基本使用:

db.version()  查看当前mongodb数据库版本

3.0.6

show dbs 查看当前的所有数据库

    > show dbs
    local  0.078GB
    gogo   0.078GB

db 查看当前所在数据库的位置,即位于哪个数据库

    > db
    gogo

use gogo  切换到数据库gogo

show collections 查看当前数据库内的集合

    > show collections
    system.indexes
    user

db.user.insert({"name":"zhangsan","age":"22","height":"1.72","weight":"60kg"})  插入文档
    > db.user.insert({"name":"zhangsan","age":"22","height":"1.72","weight":"60kg"})
      WriteResult({ "nInserted" : 1 })

db.user.find()  查看当前user集合下的所有文档

    > db.user.find()
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "22", "height" : "1.72", "weight" : "60kg" }
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "50kg" }
    { "_id" : ObjectId("58d13e8b79a177687c20accd"), "name" : "huangwu", "age" : "27", "height" : "1.66", "weight" : "65kg" }

db.user.remove()  删除当前user集合下的所有文档

    > db.user.remove({})
    WriteResult({ "nRemoved" : 3 })

db.user.stats()  查看当前user集合的状态信息

    > db.user.stats()
    {
            "ns" : "mall.user",
            "count" : 3,
            "size" : 336,
            "avgObjSize" : 112,
            "numExtents" : 1,
            "storageSize" : 8192,
            "lastExtentSize" : 8192,
            "paddingFactor" : 1,
            "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.",
            "userFlags" : 1,
            "capped" : false,
            "nindexes" : 1,
            "totalIndexSize" : 8176,
            "indexSizes" : {
                    "_id_" : 8176
            },
            "ok" : 1
    }

db.user.find({"age":"22"})   可以凭单个字段进行检索

    > db.user.find()
        { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "22", "height" : "1.72", "weight" : "60kg" }
        { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "50kg" }
        { "_id" : ObjectId("58d13e8b79a177687c20accd"), "name" : "hunagwu", "age" : "27", "height" : "1.66", "weight" : "65kg" }
        { "_id" : ObjectId("58d1488579a177687c20acce"), "name" : "xingliu", "age" : "22", "height" : "1.72", "weight" : "60kg" }
    > db.user.find({"age":"22"})
        { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "22", "height" : "1.72", "weight" : "60kg" }
        { "_id" : ObjectId("58d1488579a177687c20acce"), "name" : "xingliu", "age" : "22", "height" : "1.72", "weight" : "60kg" }

db.user.save

    1.文档存在就更新,不存在就新建
    > db.user.save({"name":"binbin"})
    WriteResult({ "nInserted" : 1 })
    db.user.find({"name":"binbin"})
    { "_id" : ObjectId("58d15f8879a177687c20accf"), "name" : "binbin" }

db.user.update  

    1.整体替换文档中的内容:

    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "22", "height" : "1.72", "weight" : "60kg" }
    > db.user.update({"name":"zhangsan"},{"name":"zhangsan","age":"26"})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    可以通过下面看到最终zhangsan的年龄被更改成了26,而且其后面的字段被删除。所以这是个整体型替换。
    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26" }

    2.找不到就新增:

    那如果找不到该怎么办呢?比如里面没有zhangsan这个人。那么就需要,让其在查找的时候,找不到就新增,找到就全部替换。(需要在后面添加true)
    > db.user.update({"name":"wanghui"},{"name":"wanghui","age":"18","sex":"girl"},true)
    WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("58d15323ecd08bc8f1114c90")
    })

    3.局部替换文档中的内容:

    只更改部分字段,保留其他字段:(使用$set:)此为原来的数据:
    > db.user.find({"name":"lisi"})
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "50kg" }
    更改weight的字段:
    > db.user.update({"name":"lisi"},{$set:{"weight":"55kg"}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.user.find({"name":"lisi"})
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "55kg" }

    4.$set:找不到就新增:

    如果找不到要修改的字段,则新增这个字段:
    > db.user.update({"name":"lisi"},{$set:{"sex":"man"}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    最后可以看到weight变成了55kg,且新增的字段sex为man:
    > db.user.find({"name":"lisi"})
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "55kg", "sex" : "man" }

    5.$unset:删除某一个字段:

    > db.user.find({"name":"lisi"})
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "weight" : "55kg", "sex" : "man" }
    > db.user.update({"name":"lisi"},{$unset:{"weight":"55kg"}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.user.find({"name":"lisi"})
    { "_id" : ObjectId("58d13e8379a177687c20accc"), "name" : "lisi", "age" : "25", "height" : "1.60", "sex" : "man" }

    6.$set新建数组,并在数组的末尾新增$push一个元素

    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26" }
    > db.user.update({"name":"zhangsan"},{$set:{group:[3,4]}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26", "group" : [ 3, 4 ] }
    > db.user.update({"name":"zhangsan"},{$push:{group:5}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26", "group" : [ 3, 4, 5 ] }

    7.通过使用$push和$each一次推送多个值

    > db.user.update({"name":"zhangsan"},{$push:{group:{$each:[5,6,7,8]}}})
    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26", "group" : [ 3, 4, 5, 5, 6, 7, 8 ] }

    8.替换数组内的元素

    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26", "group" : [ 3, 4, 5, 5, 6, 7, 8 ] }
    > db.user.update({"name":"zhangsan"},{$set:{"group.1":1}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.user.find({"name":"zhangsan"})
    { "_id" : ObjectId("58d13e7d79a177687c20accb"), "name" : "zhangsan", "age" : "26", "group" : [ 3, 1, 5, 5, 6, 7, 8 ] }

    9.查询更新文档:

    > db.runCommand({"getLastError":1})
    {
            "connectionId" : 3,
            "n" : 0,
            "syncMillis" : 0,
            "writtenTo" : null,
            "err" : null,
            "ok" : 1
    }
    “n”表示更新文档的数量


参考文献:

http://blog.csdn.net/xiaoxing598/article/details/54233044#t11

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB是一个流行的开源文档数据库,它支持灵活的数据模型和水平扩展能力。它也是一个跨平台的数据库,可以运行在多个操作系统上。 以下是MongoDB安装与配置的步骤: 1. 下载MongoDB安装包 在MongoDB官网下载页面下载适合你操作系统的MongoDB安装包。下载完成后,解压缩文件到你喜欢的目录。 2. 启动MongoDB服务 在命令行窗口中,进入MongoDB的bin目录,输入以下命令来启动MongoDB服务: ``` mongod ``` 如果一切顺利,你将看到类似以下的输出: ``` [initandlisten] MongoDB starting : pid=12345 port=27017 dbpath=/data/db ... [initandlisten] MongoDB started ... ``` 这意味着MongoDB已经成功启动了。 3. 连接MongoDB 在另一个命令行窗口中,输入以下命令来连接MongoDB服务: ``` mongo ``` 如果一切顺利,你将看到类似以下的输出: ``` MongoDB shell version v4.4.3 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("xxxx"), "uuid" : BinData(0, "xxxx"), "start" : ISODate("2021-01-01T00:00:00.000Z"), "lastUse" : ISODate("2021-01-01T00:00:00.000Z"), "pool" : "myPool" } MongoDB server version: 4.4.3 ``` 这意味着你已经成功连接MongoDB服务了。 4. 创建数据库和集合 在MongoDB中,你可以创建多个数据库和集合。以下是创建一个名为test的数据库和一个名为users的集合的命令: ``` use test db.createCollection("users") ``` 5. 插入数据 在MongoDB中,你可以插入JSON格式的文档到集合中。以下是一个插入数据到users集合中的命令: ``` db.users.insert({name: "John", age: 30, email: "[email protected]"}) ``` 6. 查询数据 在MongoDB中,你可以使用find()函数来查询数据。以下是一个查询所有数据的命令: ``` db.users.find() ``` 这将返回users集合中的所有数据。 以上是MongoDB安装与配置的基本步骤。你可以在MongoDB的官方文档中了解更多MongoDB使用方法和配置选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值