Mongo

官方文档

1. 安装运行

  • 1.1 下载安装包解压到指定目录

    1
    2
    $ ls
    GNU-AGPL-3.0 MPL-2 README THIRD-PARTY-NOTICES bin
  • 1.2 将路径加入到环境变量

    1
    2
    3
    4
    $ cat /etc/profile
    #mongodb
    MONGO_HOME=/Users/user/opt/mongo
    PATH=$MONGO_HOME/bin:$PATH
  • 1.3 启动
    默认需要有一个directory来存储数据, 路径为dbpath=/data/db。如果没有需要新建一个。
    默认端口为27017

    1
    2
    3
    4
    5
    $ mongod
    2018-01-09T10:11:41.766+0800 I CONTROL [initandlisten] MongoDB starting : pid=778 port=27017 dbpath=/data/db 64-bit host=bogon
    2018-01-09T10:11:41.767+0800 I CONTROL [initandlisten] db version v3.4.2
    2018-01-09T10:11:41.767+0800 I CONTROL [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
    ...
  • 1.4 本地登录

    1
    2
    3
    4
    $ mongo
    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.2
  • 1.5 登录远程mongo服务

    1
    2
    3
    4
    5
    6
    7
    # mongo remote.server.ip
    # mongo remote.server.ip -u user -p password

    $ mongo mongo.host.io:27017
    MongoDB shell version v3.4.2
    connecting to: mongo.host.io:27017
    MongoDB server version: 3.0.15

2. 基本操作

  • 2.1 查看所有数据库

    1
    2
    3
    4
    #注意: 如果某个数据库是空的, 则不会显示出来
    > show dbs
    admin 0.078GB
    local 0.078GB
  • 2.2 切换/创建, 删除某个数据库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #切换到某个数据库, 如果没有则创建
    > use test

    #查看当前数据库
    > db
    test

    #删除当前数据库
    > db.dropDatabase()
  • 2.3 查看某个数据库中所有的collections

    1
    2
    3
    4
    5
    6
    > show collections
    test
    zhang

    #查看数据库状态
    > db.stats()
  • 2.4 插入数据(Insert a document into a collection)

Insert a document into a collection named restaurants. The operation will create the collection if the collection does not currently exist.

1
2
3
4
5
6
#切换数据库
> use test

#数据库中一个collection中插入数据(document)
> db.zhang.insert({"name":"Jay","message":"HelloWorld"})
WriteResult({ "nInserted" : 1 })

  • 2.5 查询collection中的数据
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #查询所有数据
    > db.zhang.find().pretty()
    {
    "_id" : ObjectId("5a5429de085e0a670b0a77d5"),
    "name" : "Jay",
    "message" : "HelloWorld"
    }

    #或者
    > db.zhang.find({}).pretty()

    #根据条件查询
    > db.zhang.find({"name":"Jay"})

查询meta信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
> db.zhang.count()
80
> db.zhang.getDB()
bike
> db.zhang.getFullName()
bike.zhang
> db.zhang.getCollection()
bike.zhang.undefined
> db.zhang.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "bike.zhang"
}
]

3.更新操作

1
2
3
4
5
6
7
8
9
10
11
12
13
> mongo mongo.host.io:27017

> show dbs

> use user

> show collectoins

> db.mecords.find({"id":"8678541332",'userid':'52737'})
> db.getCollection('mecords').find({"id":"8678541332"})

# 修改某个字段
> db.mBKUserRentalRecords.update({id:"8678541332"},{$set:{userid:"000"}})