• MongoDB 基本使用


    数据库基本操作


    连接到mongoDBserver 
    1
    ./bin/mongo 127.0.0.1:12345 

    查看当前数据库
    1
    2
    3
    > show dbs
    admin  (empty)
    local  0.078G

    却换数据库(假设不存在会自己主动创建)
    1
    2
    > use jerome
    switched to db jerome

    删除数据库
    1
    2
    > db.dropDatabase()
    "dropped" "jerome""ok" : 1 }

    删除表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > > show tables
    jerome_collection
    jerome_coolection
    system.indexes
    > db.jerome_collection.drop()
    true
    > show tables #删除了当前表了
    jerome_coolection
    system.indexes

    写入


    1
    2
    > db.jerome_collection.insert({x:1}) #集合数据的写入,格式为JSON
    WriteResult({ "nInserted" : 1 })

    查询


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > show dbs
    admin   (empty)
    jerome  0.078GB
    local   0.078GB
    > show collections
    jerome_collection
    system.indexes
    > db.jerome_collection.find()
    "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 }
    > db.jerome_collection.find({x:1})    #能够指定參数
    "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 } #_id是全局字段,在数据库中不会反复

    插入多条数据測试limit等
    1
    2
    3
    4
    5
    6
    7
    8
    for(i=3;i<100;i++)db.jerome_collection.insert({x:i}) #能够使用js语法
    WriteResult({ "nInserted" : 1 })
    > db.jerome_collection.find().count() #查找总条数
    99
    > db.jerome_collection.find().skip(3).limit(2).sort({x:1}) #跳过前三条。取两条,使用x排序
    "_id" : ObjectId("556ff5e8d7e60a53de941a74"), "x" : 4 }
    "_id" : ObjectId("556ff5e8d7e60a53de941a75"), "x" : 5 }

    更新


    1
    2
    3
    4
    5
    6
    7
    8
    > db.jerome_collection.find({x:1})
    "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 1 }
    db.jerome_collection.update({x:1},{x:999}) #两个參数,一个查找的,一个更新的数据。
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.jerome_collection.find({x:1}) #已经找不到了
    > db.jerome_collection.find({x:999}) 
    "_id" : ObjectId("556fd29a4e8b96c5ebc42e63"), "x" : 999 }
     
    部分更新操作符(set 
    1
    2
    3
    4
    5
    6
    7
    > db.jerome_collection.insert({x:100,y:100,z:100})
    WriteResult({ "nInserted" : 1 })
    > db.jerome_collection.update({z:100},{$set:{y:99}})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.jerome_collection.find({z:100})
    "_id" : ObjectId("556ff84a1c99195ded71252e"), "x" : 100, "y" : 99, "z" : 100 }

    更新不存在数据时会自己主动创建
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    > db.jerome_collection.find({y:100})
    db.jerome_collection.update({y:100},{y:999},true)
    WriteResult({
        "nMatched" : 0,
        "nUpserted" : 1,
        "nModified" : 0,
        "_id" : ObjectId("556ff9556db7cf8009b5edf8")
    })
    > db.jerome_collection.find({y:999})
    "_id" : ObjectId("556ff9556db7cf8009b5edf8"), "y" : 999 }

    更新多条数据
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    for(i=0;i<3;i++)db.jerome_collection.insert({c:2}) #插入三条
    WriteResult({ "nInserted" : 1 })
    > db.jerome_collection.find({c:2}) 
    "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 2 }
    "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 2 }
    "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 2 }
    > db.jerome_collection.update({c:2},{c:3}) #更新
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.jerome_collection.find({c:2})
    "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 2 }
    "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 2 }
    > db.jerome_collection.find({c:3}) #发现仅仅更新一条,是为了防止误操作
    "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }
    > db.jerome_collection.update({c:2},{$set:{c:3}},false,true#更新多条
    WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
    > db.jerome_collection.find({c:2})
    > db.jerome_collection.find({c:3})
    "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 }

    删除


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > db.jerome_collection.find({c:3})
    "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 }
    > db.jerome_collection.remove() #不可用
    2015-06-04T00:15:34.444-0700 remove needs a query at src/mongo/shell/collection.js:299
    > db.jerome_collection.find({c:3})
    "_id" : ObjectId("556ffa011c99195ded71252f"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712530"), "c" : 3 }
    "_id" : ObjectId("556ffa011c99195ded712531"), "c" : 3 }
    db.jerome_collection.remove({c:3}) #删除必需要有參数
    WriteResult({ "nRemoved" : 3 })
    > db.jerome_collection.find({c:3}) #删除成功

    索引


            数据较多时。使用索引速度加快查询。


            查看集合索引情况
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for(i=0;i<100;i++)db.jerome_collection.insert({x:i}) #加入測试数据
    WriteResult({ "nInserted" : 1 })
    > db.jerome_collection.getIndexes() #仅仅有一个默认索引
    [
        {
            "v" : 1,
            "key" : {
                "_id" : 1
            },
            "name" "_id_",
            "ns" "jerome.jerome_collection"
        }
    ]

            创建索引
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    db.jerome_collection.ensureIndex({x:1}) #1代表正向排序,-1代表反向排序
    {
        "createdCollectionAutomatically" false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1
    }
    > db.jerome_collection.getIndexes()
    [
        {
            "v" : 1,
            "key" : {
                "_id" : 1
            },
            "name" "_id_",
            "ns" "jerome.jerome_collection"
        },
        {
            "v" : 1,
            "key" : {
                "x" : 1
            },
            "name" "x_1",
            "ns" "jerome.jerome_collection"
        }
    ]
            索引尽管会使写入的数度变慢。可是查询的速度变快了。


  • 相关阅读:
    逻辑实现与物理实现
    逻辑实现与物理实现
    可逆矩阵的逆
    可逆矩阵的逆
    算法 Tricks(三)—— 判断序列是否为等差数列
    算法 Tricks(三)—— 判断序列是否为等差数列
    C++ Tricks(一)—— 判断字符串 string 对象的所有字符都相等
    AndroidMainifest标签使用说明3——&lt;activity-alias&gt;
    支持向量机通俗导论(理解SVM的三层境地)
    iOS中,MRC和ARC混编
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7039709.html
Copyright © 2020-2023  润新知